0 から 18,446,744,073,709,551,615 (1.84 x 10 ^ 19 以上) までの値の範囲の符号なし 64 ビット (8 バイト) の整数を保持します。
Remarks
ULong データ型は、UInteger には大きすぎるバイナリ データや、可能な限り最大の符号なし整数値を格納する場合に使用します。
ULong の既定値は 0 です。
リテラルの代入
ULong 変数を宣言し、10 進リテラル、16 進リテラル、8 進リテラル、または (Visual Basic 2017 以降) バイナリ リテラルを代入することによって初期化できます。 整数リテラルが ULong の範囲外にある場合 (つまり、UInt64.MinValue より小さいか、UInt64.MaxValue より大きい場合)、コンパイル エラーが発生します。
次の例では、整数 7,934,076,125 を 10 進リテラル、16 進リテラル、バイナリ リテラルで表したものが、ULong 値に割り当てられています。
Dim ulongValue1 As ULong = 7934076125
Console.WriteLine(ulongValue1)
Dim ulongValue2 As ULong = &H0001D8e864DD
Console.WriteLine(ulongValue2)
Dim ulongValue3 As ULong = &B0001_1101_1000_1110_1000_0110_0100_1101_1101
Console.WriteLine(ulongValue3)
' The example displays the following output:
' 7934076125
' 7934076125
' 7934076125
注意
16 進リテラルを表すにはプレフィックス &h または &H を使い、バイナリ リテラルを表すにはプレフィックス &b または &B を使い、8 進リテラルを表すにはプレフィックス &o または &O を使います。 10 進リテラルには、プレフィックスはありません。
Visual Basic 2017 以降では、次の例に示すように、アンダースコア文字 _ を桁区切り記号として使って読みやすくすることもできます。
Dim longValue1 As Long = 4_294_967_296
Console.WriteLine(longValue1)
Dim longValue2 As Long = &H1_0000_0000
Console.WriteLine(longValue2)
Dim longValue3 As Long = &B1_0000_0000_0000_0000_0000_0000_0000_0000
Console.WriteLine(longValue3)
' The example displays the following output:
' 4294967296
' 4294967296
' 4294967296
Visual Basic 15.5 以降では、プレフィックスと 16 進数、2 進数、または 8 進数の間に先頭の区切り記号としてアンダースコア文字 (_) を使用することもできます。 次に例を示します。
Dim number As ULong = &H_F9AC_0326_1489_D68C
アンダースコア文字を先頭の区切り記号として使用するには、以下の要素を Visual Basic プロジェクト (*.vbproj) ファイルに追加する必要があります。
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
詳細については、「Visual Basic 言語バージョンの選択」を参照してください。
数値リテラルには、次の例に示すように、UL または ul型文字を含めて、ULong データ型を表すこともできます。
Dim number = &H_00_00_0A_96_2F_AC_14_D7ul
プログラミングのヒント
負の数値。
ULongは符号なしの型であるため、負の数を表すことはできません。-型に評価される式で、単項マイナス (ULong) 演算子を使用すると、Visual Basic で式が最初にDecimalに変換されます。CLS 準拠。
ULongデータ型は共通言語仕様 (CLS) に含まれないため、CLS に準拠しているコードではそれを使用するコンポーネントを使用できません。相互運用の考慮事項。 オートメーション オブジェクトや COM オブジェクトなど、.NET Framework 用に作成されていないコンポーネントとやり取りする場合、
ulongなどの型は、他の環境ではデータ幅 (32 ビット) が異なる可能性があることに注意してください。 そのようなコンポーネントに 32 ビットの引数を渡す場合は、Visual Basic のマネージド コードで、UIntegerではなくULongとして宣言します。拡大変換。
ULongデータ型は、Decimal、Single、およびDoubleに拡大変換されます。 これは、ULongエラーを発生させることなく、これらの型のいずれかに System.OverflowException を変換できることを意味します。型宣言文字。 あるリテラルにリテラルの型文字
ULを付けると、そのリテラルはULongデータ型に変換されます。ULongには識別子の型文字がありません。Framework のデータ型 .NET Framework において対応する型は、System.UInt64 構造体です。
関連項目
.NET