多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# uint(C# 参考) **uint** 关键字表示一种整型,该类型根据下表显示的大小和范围存储值。 | 类型 | 范围 | 大小 | .NET Framework 类型 | | --- | --- | --- | --- | | **uint** | 0 到 4,294,967,295 | 无符号 32 位整数 | [System.UInt32](https://msdn.microsoft.com/zh-CN/library/system.uint32.aspx) | 注意   **uint** 类型与 CLS 不兼容。应尽可能使用 **int**。 ## 文本 可如下例所示声明并初始化 **uint** 类型的变量: ``` uint myUint = 4294967290; ``` 如果整数没有后缀,则其类型为以下类型中可表示其值的第一个类型:[int](https://msdn.microsoft.com/zh-CN/library/5kzh1b5w.aspx)、**uint**、[long](https://msdn.microsoft.com/zh-CN/library/ctetwysk.aspx)、[ulong](https://msdn.microsoft.com/zh-CN/library/t98873t4.aspx)。在此例中,它是 **uint**: ``` uint uInt1 = 123; ``` 还可以像下面这样使用后缀 u 或 U: ``` uint uInt2 = 123U; ``` 当使用后缀 U 或 u 时,将根据文本的数值来确定文本的类型是 **uint** 还是 **ulong**。例如: ``` Console.WriteLine(44U.GetType()); Console.WriteLine(323442434344U.GetType()); ``` 此代码先后显示 System.UInt32 和 System.UInt64(它们分别是 **uint** 和 **ulong** 的基础类型),因为第二个文本太大,无法用 **uint** 类型来存储。 ## 转换 存在从 **uint** 到 [long](https://msdn.microsoft.com/zh-CN/library/ctetwysk.aspx)、[ulong](https://msdn.microsoft.com/zh-CN/library/t98873t4.aspx)、[float](https://msdn.microsoft.com/zh-CN/library/b1e65aza.aspx)、[double](https://msdn.microsoft.com/zh-CN/library/678hzkk9.aspx) 或 [decimal](https://msdn.microsoft.com/zh-CN/library/364x0z75.aspx) 的预定义隐式转换。例如: ``` float myFloat = 4294967290; // OK: implicit conversion to float ``` 存在从 [byte](https://msdn.microsoft.com/zh-CN/library/5bdb6693.aspx)、[ushort](https://msdn.microsoft.com/zh-CN/library/cbf1574z.aspx) 或 [char](https://msdn.microsoft.com/zh-CN/library/x9h8tsay.aspx) 到 **uint** 的预定义隐式转换。否则必须使用显式转换。例如,如果不进行强制转换,下面的赋值语句将产生编译错误: ``` long aLong = 22; // Error -- no implicit conversion from long: uint uInt1 = aLong; // OK -- explicit conversion: uint uInt2 = (uint)aLong; ``` 还请注意,不存在从浮点型到 **uint** 类型的隐式转换。例如,除非使用显式强制转换,否则以下语句将生成一个编译器错误: ``` // Error -- no implicit conversion from double: uint x = 3.0; // OK -- explicit conversion: uint y = (uint)3.0; ``` 有关兼用浮点型和整型的算术表达式的信息,请参见 [float](https://msdn.microsoft.com/zh-CN/library/b1e65aza.aspx) 和 [double](https://msdn.microsoft.com/zh-CN/library/678hzkk9.aspx)。 有关隐式数值转换规则的更多信息,请参见[隐式数值转换表(C# 参考)](https://msdn.microsoft.com/zh-CN/library/y5b434w4.aspx)。 ## C# 语言规范 有关详细信息,请参阅 [C# 语言规范](https://msdn.microsoft.com/zh-CN/library/ms228593.aspx)。该语言规范是 C# 语法和用法的权威资料。 ## 请参阅 [UInt32](https://msdn.microsoft.com/zh-CN/library/system.uint32.aspx) [C# 参考](https://msdn.microsoft.com/zh-CN/library/618ayhy6.aspx) [C# 编程指南](https://msdn.microsoft.com/zh-CN/library/67ef8sbd.aspx) [C# 关键字](https://msdn.microsoft.com/zh-CN/library/x53a06bb.aspx) [整型表(C# 参考)](https://msdn.microsoft.com/zh-CN/library/exx3b86w.aspx) [内置类型表(C# 参考)](https://msdn.microsoft.com/zh-CN/library/ya5y69ds.aspx) [隐式数值转换表(C# 参考)](https://msdn.microsoft.com/zh-CN/library/y5b434w4.aspx) [显式数值转换表(C# 参考)](https://msdn.microsoft.com/zh-CN/library/yht2cx7b.aspx)