Ich habe eine Weile beobachtet, dass C # -Programmierer dazu neigen, int überall zu verwenden und selten auf uint zurückzugreifen. Aber ich habe nie eine zufriedenstellende Antwort gefunden, warum.
Wenn Interoperabilität Ihr Ziel ist, sollte uint nicht in öffentlichen APIs angezeigt werden, da nicht alle CLI-Sprachen vorzeichenlose Ganzzahlen unterstützen. Das erklärt aber nicht, warum int selbst in internen Klassen so verbreitet ist. Ich vermute, dies ist der Grund, warum uint in der BCL sparsam verwendet wird.
Wenn Sie in C ++ eine Ganzzahl haben, für die negative Werte keinen Sinn ergeben, wählen Sie eine Ganzzahl ohne Vorzeichen.
Dies bedeutet eindeutig, dass negative Zahlen nicht zulässig sind oder erwartet werden, und der Compiler wird einige Überprüfungen für Sie durchführen. Ich vermute auch im Fall von Array-Indizes, dass die JIT die Prüfung der unteren Grenzen leicht fallen lassen kann.
Beim Mischen von Int- und Unit-Typen sind jedoch besondere Sorgfalt und Abdrücke erforderlich.
Sollte uint mehr verwendet werden? Warum?