Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is Count not an unsigned integer? [duplicate]

Tags:

c#

.net

Possible Duplicates:
Why does .NET use int instead of uint in certain classes?
Why is Array.Length an int, and not an uint

I've always wonder why .Count isn't an unsigned integer instead of a signed one?

For example, take ListView.SelectedItems.Count. The number of elements can't be less then 0, so why is it a signed int?

If I try to test if there are elements selected, I would like to test

 if (ListView.SelectedItems.Count == 0) {} 

but because it's a signed integer, I have to test

 if (ListView.SelectedItems.Count <= 0) {} 

or is there any case when .Count could be < 0 ?

like image 480
Inno Avatar asked Sep 07 '10 12:09

Inno


2 Answers

Unsigned integer is not CLS-compliant (Common Language Specification)

For more info on CLS compliant code, see this link:

http://msdn.microsoft.com/en-us/library/bhc3fa7f.aspx

like image 135
Philippe Leybaert Avatar answered Oct 23 '22 22:10

Philippe Leybaert


Mabye because the uint data type is not part of the CLS (common language specification) as not all .Net languages support it.

Here is very similar thread about arrays:

Why is Array.Length an int, and not an uint

like image 27
nan Avatar answered Oct 23 '22 23:10

nan