17

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

4

3 回答 3

15

uint表示无符号整数,您可以将其用于 0 .. +4G 范围
,其中正常(有符号)整数具有 -2G .. +2G 范围。

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

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

于 2010-06-18T09:24:18.570 回答
4

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

于 2010-06-18T09:25:44.043 回答
3

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

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

于 2010-06-18T09:26:32.467 回答