使用int和uint以及何时使用的区别

时间:2010-06-18 09:21:30

标签: c#

使用int和uint有什么区别?到目前为止我看到的所有示例都使用int作为整数。使用uint的任何好处?感谢。

3 个答案:

答案 0 :(得分:15)

uint表示 unsigned int,您可以将其用于0 .. + 4G范围
普通(带符号)int具有-2G .. + 2G范围。

何时使用?几乎从不。它不是符合CLS的类型,因此您永远不会在程序集的公共接口中使用它。并非所有.NET语言都可以处理它。

它们的主要用途是在P / Invoke中使用非托管代码和一些罕见的位掩码情况。在.NET中,我们使用普通的签名整数进行大多数位掩码。

答案 1 :(得分:4)

首先,uint 不符合CLS (其他语言,目标.NET平台不一定实现它),您应该尽可能避免在公共API中使用它。嗯,当然它们对于uint的范围(0 ... 4,294,967,295)和对于int的(-2,147,483,648到2,147,483,647)不同。

答案 2 :(得分:3)

主要区别很简单,int是有符号的,而uint是无符号的。因为uint不允许负数,所以它的范围为0到4,294,967,295,相比之下,对于一个int,范围为-2,147,483,648到2,147,483,647

如果你有一个你不能有负整数的场景或者没有负值的情况,那么无符号整数可能是一个不错的选择。但是,如果你不需要额外的范围并且永远不会低于0,那么它并不重要,你可以使用int保存一个字符。