我已经观察了一段时间C#程序员倾向于在任何地方使用int,并且很少使用uint.但我从来没有找到一个令人满意的答案为什么.
如果您的目标是互操作性,则uint不应出现在公共API中,因为并非所有CLI语言都支持无符号整数.但这并不能解释为什么int如此普遍,即使在内部课程中也是如此.我怀疑这是因为在BCL中谨慎使用uint的原因.
在C++中,如果你有一个负值没有意义的整数,你选择一个无符号整数.
这清楚地表明不允许或不期望负数,编译器会为您做一些检查.我还怀疑在数组索引的情况下,JIT可以轻松地删除下限检查.
但是,在混合int和单位类型时,需要额外的护理和演员表.
是否应该使用更多?为什么?
c# ×1