Possible Duplicate:
Why is Array.Length an int, and not an uint
Is there is a reason behind it .NET Framework not using unsigned data types?
Shouldn’t I be adopting them in my code, but for example, the Count property of a List<> is an int. You can’t have a negative count, so why shouldn’t it be defined as a uint? Should I use only int’s even though I know the count can not be negative?
Unsigned numeric types are not CLS compliant so they should not be used for any API – especially the .NET framework.
Basically, CLS compliant code only utilizes types that are available in all .NET languages. Some languages (like VB.NET) does not support unsigned numeric types.