Ho appena provato a implementare una classe in cui numerose proprietà di lunghezza/conteggio, ecc. Sono uint
anziché int
. Tuttavia, mentre lo facevo, ho notato che è davvero doloroso farlo, come se nessuno volesse davvero farlo.Devo usare uint in C# per valori che non possono essere negativi?
Quasi tutto ciò che fornisce un tipo integrale restituisce un int
, pertanto richiede cast in diversi punti. Volevo costruire un StringBuffer
con la sua lunghezza del buffer predefinita per uno dei campi in quella classe. Richiede anche un cast.
Quindi mi chiedevo se dovessi tornare a int
qui. Certamente non sto usando l'intera gamma comunque. Ho solo pensato che dal momento che quello che sto trattando semplicemente non può essere negativo (se lo fosse, sarebbe un errore) sarebbe una buona idea usare effettivamente uint
.
P.S .: Ho visto this question e questo, almeno spiega perché il framework stesso utilizza sempre int
ma anche nel proprio codice in realtà è ingombrante di attenersi a uint
che mi fa pensare a quanto pare non è veramente voluto.
Vedere anche [why-does-net-use-int-invece-of-uint-in-certain-classes] (http://stackoverflow.com/questions/782629/why-does-net-use-int -instead-of-uint-in-certain-classes) – nawfal