0 から 4,294,967,295 までの値の範囲の符号なし 32 ビット (4 バイト) の整数を保持します。
Remarks
UInteger データ型は、最も効率的なデータ幅で最も大きな符号なしの値を提供します。
UInteger の既定値は 0 です。
リテラルの代入
UInteger 変数を宣言し、10 進リテラル、16 進リテラル、8 進リテラル、または (Visual Basic 2017 以降) バイナリ リテラルを代入することによって初期化できます。 整数リテラルが UInteger の範囲外にある場合 (つまり、UInt32.MinValue より小さいか、UInt32.MaxValue より大きい場合)、コンパイル エラーが発生します。
次の例では、整数 3,000,000,000 を 10 進リテラル、16 進リテラル、バイナリ リテラルで表したものが、UInteger 値に割り当てられています。
Dim uintValue1 As UInteger = 3000000000ui
Console.WriteLine(uintValue1)
Dim uintValue2 As UInteger = &HB2D05E00ui
Console.WriteLine(uintValue2)
Dim uintValue3 As UInteger = &B1011_0010_1101_0000_0101_1110_0000_0000ui
Console.WriteLine(uintValue3)
' The example displays the following output:
' 3000000000
' 3000000000
' 3000000000
Note
16 進リテラルを表すにはプレフィックス &h または &H を使い、バイナリ リテラルを表すにはプレフィックス &b または &B を使い、8 進リテラルを表すにはプレフィックス &o または &O を使います。 10 進リテラルには、プレフィックスはありません。
Visual Basic 2017 以降では、次の例に示すように、アンダースコア文字 _ を桁区切り記号として使って読みやすくすることもできます。
Dim uintValue1 As UInteger = 3_000_000_000ui
Console.WriteLine(uintValue1)
Dim uintValue2 As UInteger = &HB2D0_5E00ui
Console.WriteLine(uintValue2)
Dim uintValue3 As UInteger = &B1011_0010_1101_0000_0101_1110_0000_0000ui
Console.WriteLine(uintValue3)
' The example displays the following output:
' 3000000000
' 3000000000
' 3000000000
Visual Basic 15.5 以降では、プレフィックスと 16 進数、2 進数、または 8 進数の間に先頭の区切り記号としてアンダースコア文字 (_) を使用することもできます。 次に例を示します。
Dim number As UInteger = &H_0F8C_0326
アンダースコア文字を先頭の区切り記号として使用するには、以下の要素を Visual Basic プロジェクト (*.vbproj) ファイルに追加する必要があります。
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
詳細については、「Visual Basic 言語バージョンの選択」を参照してください。
数値リテラルには、次の例に示すように、UI または ui型文字を含めて、UInteger データ型を表すこともできます。
Dim number = &H_0FAC_14D7ui
プログラミングのヒント
UInteger データ型および Integer データ型は、32 ビット プロセッサで最適なパフォーマンスを発揮します。これは、より小さい整数型 (UShort、Short、Byte、SByte) では、使用するビット数が少なくても、読み込み、格納、およびフェッチにかかる時間が長くなるためです。
負の数値。
UIntegerは符号なしの型であるため、負の数を表すことはできません。-型に評価される式で、単項マイナス (UInteger) 演算子を使用すると、Visual Basic で式が最初にLongに変換されます。CLS 準拠。
UIntegerデータ型は共通言語仕様 (CLS) に含まれないため、CLS に準拠しているコードではそれを使用するコンポーネントを使用できません。相互運用の考慮事項。 オートメーション オブジェクトや COM オブジェクトなど、.NET Framework 用に作成されていないコンポーネントとやり取りする場合、
uintなどの型は、他の環境ではデータ幅 (16 ビット) が異なる可能性があることに注意してください。 そのようなコンポーネントに 16 ビットの引数を渡す場合は、Visual Basic のマネージド コードで、UShortではなくUIntegerとして宣言します。拡大変換。
UIntegerデータ型は、Long、ULong、Decimal、Single、およびDoubleに拡大変換されます。 これは、UIntegerエラーを発生させることなく、これらの型のいずれかに System.OverflowException を変換できることを意味します。型宣言文字。 あるリテラルにリテラルの型文字
UIを付けると、そのリテラルはUIntegerデータ型に変換されます。UIntegerには識別子の型文字がありません。Framework のデータ型 .NET Framework において対応する型は、System.UInt32 構造体です。
関連項目
.NET