duplicados posibles:
Why does .NET use int instead of uint in certain classes?
Why is Array.Length an int, and not an uint¿Por qué Count no es un entero sin signo?
siempre he preguntan por qué .Count
no es un entero sin signo en lugar de una firma?
Por ejemplo, tome ListView.SelectedItems.Count
. La cantidad de elementos no puede ser menor que 0, entonces ¿por qué es un int firmado?
Si intento para probar si hay elementos seleccionados, me gustaría probar
if (ListView.SelectedItems.Count == 0) {}
sino porque es un entero con signo, tengo que probar
if (ListView.SelectedItems.Count <= 0) {}
o hay cualquier caso cuando .Count
podría ser < 0?
Supongo que es por conveniencia, porque no se puede enviar un mensaje a un int y la mayoría de la gente está acostumbrada a usar ints para indexadores ... –
aún así puedes probar '== 0', ¿verdad? ya que, como usted señala, nunca será menor que 0. después de todo, no hay escapatoria de que, en algún punto, su código asumirá que el código de otras personas se comportará de la manera que los nombres de los miembros implican. Yo diría que le otorga la capacidad de asumir 'Count' nunca será menor que 0, y comprobar la igualdad. –
Y el duplicado de [¿Por qué Array.Length es una int, y no es una uint] (http://stackoverflow.com/questions/6301), [¿Por qué las variables sin signo se utilizan con más frecuencia?] (Http: // stackoverflow .com/questions/490222) –