ulong (C# リファレンス)
ulong キーワードは、次の表に示されたサイズと範囲に従って値を格納する整数型を表します。
種類 |
範囲 |
サイズ |
.NET Framework 型 |
---|---|---|---|
ulong |
0 ~ 18,446,744,073,709,551,615 |
符号なし 64 ビット整数 |
リテラル
ulong 変数の宣言と初期化の例を次に示します。
ulong uLong = 9223372036854775808;
サフィックスがない整数リテラルの型は、int、uint、long、ulong のうち、その整数の値を表すことができる最も範囲の狭い型になります。上記の例では、ulong 型です。
サフィックスを使用してリテラルの型を指定する場合は、次の規則に従います。
L または l を使用した場合、リテラル整数の型は、サイズに応じて long または ulong のいずれかに決まります。
[!メモ]
小文字の "l" をサフィックスとして使用できます。ただし、文字 "l" は数字の "1" と混同しやすいので、コンパイラから警告が出されます。明確にするには "L" を使用します。
U または u を使用した場合、リテラル整数の型は、サイズに応じて uint または ulong のいずれかに決まります。
UL、ul、Ul、uL、LU、lu、Lu、lU を使用した場合、リテラル整数の型は ulong です。
たとえば、次の 3 つのステートメントの出力は、エイリアス ulong に対応したシステム型 UInt64 になります。
Console.WriteLine(9223372036854775808L.GetType()); Console.WriteLine(123UL.GetType()); Console.WriteLine((123UL + 456).GetType());
サフィックスは、オーバーロードされたメソッドの呼び出しでよく使われます。たとえば、ulong パラメーターと int パラメーターを使用したオーバーロードされたメソッドがあるとします。
public static void SampleMethod(int i) {}
public static void SampleMethod(ulong l) {}
ulong パラメーターでサフィックスを使用すると、正しい型が呼び出されます。次に例を示します。
SampleMethod(5); // Calling the method with the int parameter
SampleMethod(5UL); // Calling the method with the ulong parameter
変換
ulong から float、double、または decimal への暗黙の型変換が組み込まれています。
ulong から整数型への暗黙の型変換はありません。たとえば、次のステートメントは、明示的なキャストを使用しない場合、コンパイル エラーになります。
long long1 = 8UL; // Error: no implicit conversion from ulong
byte、ushort、uint、または char から ulong への暗黙の型変換が組み込まれています。
浮動小数点型から ulong への暗黙の型変換はありません。たとえば、次のステートメントは、明示的なキャストを使用しない場合、コンパイラ エラーになります。
// Error -- no implicit conversion from double:
ulong x = 3.0;
// OK -- explicit conversion:
ulong y = (ulong)3.0;
浮動小数点型と整数型の混在する算術式の詳細については、「float」と「double」を参照してください。
暗黙の数値変換規則の詳細については、「暗黙的な数値変換の一覧表 (C# リファレンス)」を参照してください。
C# 言語仕様
詳細については、「C# 言語仕様」を参照してください。言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。