|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.|
uint (C# Reference)
The uint keyword signifies an integral type that stores values according to the size and range shown in the following table.
.NET Framework type
0 to 4,294,967,295
Unsigned 32-bit integer
Note The uint type is not CLS-compliant. Use int whenever possible.
You can declare and initialize a variable of the type uint like this example:
uint myUint = 4294967290;
uint uInt1 = 123;
You can also use the suffix u or U, such as this:
uint uInt2 = 123U;
When you use the suffix U or u, the type of the literal is determined to be either uint or ulong according to the numeric value of the literal. For example:
This code displays System.UInt32, followed by System.UInt64 -- the underlying types for uint and ulong respectively -- because the second literal is too large to be stored by the uint type.
float myFloat = 4294967290; // OK: implicit conversion to float
There is a predefined implicit conversion from byte, ushort, or char to uint. Otherwise you must use a cast. For example, the following assignment statement will produce a compilation error without a cast:
long aLong = 22; // Error -- no implicit conversion from long: uint uInt1 = aLong; // OK -- explicit conversion: uint uInt2 = (uint)aLong;
Notice also that there is no implicit conversion from floating-point types to uint. For example, the following statement generates a compiler error unless an explicit cast is used:
// Error -- no implicit conversion from double: uint x = 3.0; // OK -- explicit conversion: uint y = (uint)3.0;
For more information about implicit numeric conversion rules, see the Implicit Numeric Conversions Table (C# Reference).
For more information, see the following sections in the C# Language Specification:
1.3 Types and Variables
4.1.5 Integral Types