假设MaxValue
(大约:))2^31 与 2^32 无关紧要。一方面, usinguint
看起来不错,因为它是不言自明的,它表明(并承诺?)某些值可能永远不会是负数。然而,int
更常见的是,演员往往不方便。可以只使用 int 并始终使用代码协定对其进行补充(现在每个人都已迁移到 .Net 4.0,对吗?)标准库确实使用int
了 forLength
和Size
properties,即使它们永远不应该是负面的。那么,这对您来说是显而易见的,int
还是比uint
大多数时候更好,还是更复杂?
如果您发现这个问题没有明确说明,请提出问题。
谢谢。
编辑:是的,看起来像个骗子。但是,还有一个额外的小问题:你能给我一个很好的例子,说明在这种特殊情况下,当值可能不是负数时,如何用代码合同/断言语句补充属性/函数?