Olası çoğaltmaları:
.Count
yerine imzalı birinin işaretsiz tamsayı değil neden hep ettik
Why does .NET use int instead of uint in certain classes?
Why is Array.Length an int, and not an uintSayım neden imzasız bir tam sayı değil?
acaba? Örneğin, numaralı telefonu kullanın. Öğelerin sayısı 0'dan az olamaz, bu yüzden neden imzalanmış bir int? Ben seçilmiş unsur vardır olmadığını test çalışırsanız
, ben
if (ListView.SelectedItems.Count == 0) {}
test etmek istiyorum ama bir imzalı tamsayı olduğu için, ben
if (ListView.SelectedItems.Count <= 0) {}
test etmek zorunda ya da herhangi bir durumda var .Count
ne zaman < 0 olabilir? uint veri türü bir parçası değildir çünkü
http://msdn.microsoft.com/en-us/library/bhc3fa7f.aspx
Sanırım kolaylık değil, çünkü bir int için uint yapamazsınız ve çoğu kişi indeksleyiciler için ints kullanamaz ... –
hala test edebilirsiniz, '== 0', yine de? işaret ettiğinden, hiç bir zaman 0'dan daha az olmayacak, çünkü bir noktada, kodunuzun, diğer insanların kodunun üye isimlerinin ima ettiği şekilde davranacağına dair bazı temel varsayımlar yapacağından kaçınılamaz. Söyleyeyim ki, 'say' asla 0'dan az olmayacak ve eşitliği kontrol edecek. –
Ve [Neden Array.Length bir int, ve bir uint değil] nedenidir (http://stackoverflow.com/questions/6301), [Neden imzasız değişkenler daha sık kullanılan değil?] (Http: // stackoverflow .com/questions/490222) –