Acabo de intentar implementar una clase donde numerosas propiedades de longitud/conteo, etc. son uint
en lugar de int
. Sin embargo, al hacerlo noté que en realidad es doloroso hacerlo, como si realmente nadie quisiera hacer eso.¿Debo usar uint en C# para valores que no pueden ser negativos?
Casi todo lo que entrega un tipo integral devuelve un int
, por lo que requiere moldes en varios puntos. Quería construir un StringBuffer
con su longitud de buffer predeterminada en uno de los campos de esa clase. Requiere un yeso también.
Así que me preguntaba si debería volver a int
aquí. Ciertamente, no estoy usando toda la gama de todos modos. Solo pensé que, dado que lo que estoy tratando allí, simplemente no puede ser negativo (si lo fuera, sería un error) sería una buena idea usar realmente uint
.
P.S .: vi this question y esto explica por qué, al menos, el propio marco siempre utiliza int
pero incluso en el propio código en realidad es engorroso para pegarse a uint
que me hace pensar que, aparentemente, no está realmente quería.
Ver también [why-does-net-use-int-instead-of-uint-in-certain-classes] (http://stackoverflow.com/questions/782629/why-does-net-use-int -instead-of-uint-in-certain-classes) – nawfal