Possible en double:
Should I use uint in C# for values that can’t be negative?En C# devrais-je utiliser uint ou int pour des valeurs qui ne sont jamais censées être négatives?
Supposons que le MaxValue
de (à peu près :)) 2^31 vs 2^32 n'a pas d'importance. D'une part, l'utilisation de uint
semble bien parce qu'elle est explicite, elle indique (et promet?) Qu'une certaine valeur ne peut jamais être négative. Cependant, int
est plus commun, et une distribution est souvent incommode. On peut juste utiliser int et toujours le compléter avec des contrats de code (tout le monde a changé pour .Net 4.0 maintenant, non?). Les bibliothèques standard utilisent int
pour les propriétés Length
et Size
, même si celles-ci ne devraient jamais être négatives. Donc, est-il évident pour vous que int
est mieux que uint
la plupart du temps, ou est-ce plus compliqué?
Veuillez poser des questions si vous trouvez que cette question n'est pas clairement indiquée.
Merci.
EDIT: Yup, ressemble à une dupe. Cependant, et une toute petite question: pourriez-vous me donner un bon exemple de comment compléter les propriétés/fonctions avec des contrats de code/assert déclarations dans ce cas particulier lorsque la valeur ne peut être négative?