uint (C# リファレンス)
uint キーワードは、次の表に示されたサイズと範囲に従って値を格納する整数型を表します。
種類 |
範囲 |
サイズ |
.NET Framework 型 |
---|---|---|---|
uint |
0 ~ 4,294,967,295 |
符号なし 32 ビット整数 |
メモuint 型は CLS に準拠していません。できるだけ int を使用します。
リテラル
uint 型の変数の宣言と初期化の例を次に示します。
uint myUint = 4294967290;
サフィックスがない整数リテラルの型は、int、uint、long、ulong のうち、その整数の値を表すことができる最も範囲の狭い型になります。この例では、uint です。
uint uInt1 = 123;
また、サフィックス u または U を使用することもできます。次に例を示します。
uint uInt2 = 123U;
サフィックス U または u を使用すると、リテラルの型は、リテラルの数値に応じて uint または ulong のいずれかに決まります。次に例を示します。
Console.WriteLine(44U.GetType());
Console.WriteLine(323442434344U.GetType());
このコードでは、2 番目のリテラルが uint 型で格納するには大きすぎるため、System.UInt32、System.UInt64 の順に表示します。これはそれぞれ、uint および ulong の基になる型です。
変換
uint から long、ulong、float、double、または decimal への暗黙の型変換が組み込まれています。次に例を示します。
float myFloat = 4294967290; // OK: implicit conversion to float
byte、ushort、または char から 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 (C# リファレンス)」と「double (C# リファレンス)」を参照してください。
暗黙の数値変換規則の詳細については、「暗黙的な数値変換の一覧表 (C# リファレンス)」を参照してください。
C# 言語仕様
詳細については、「C# 言語仕様」を参照してください。言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。