ULong 資料類型 (Visual Basic)

保存不帶正負號的 64 位元 (8 位元組) 整數,範圍介於 0 到 18,446,744,073,709,551,615 之間的值 (超過 1.84 乘以 10 ^ 19)。

備註

使用 ULong 資料類型,以包含對於 UInteger 太大的二進位資料,或最大的可能不帶正負號整數值。

ULong 的預設值為 0。

常值指派

您可以針對 ULong 變數指派十進位常值、十六進位常值、八進位常值、或二進位常值 (自 Visual Basic 2017 起),以將其宣告和初始化。 如果整數常值超出 ULong 的範圍 (亦即,如果小於 UInt64.MinValue 或大於 UInt64.MaxValue),就會發生編譯錯誤。

在下列範例中,以十進位、十六進位和二進位常值表示的 7,934,076,125 整數,會指派給 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

注意

您可以使用 &h&H 前置詞來表示十六進位常值,以 &b&B 前置詞來表示二進位常值,以 &o&O 前置詞來表示八進位常值。 十進位常值沒有前置詞。

自 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 開始,您也可以使用底線字元 (_) 作為前置字元與十六進位、二進位或八進位數字之間的前置分隔符號。 例如:

Dim number As ULong = &H_F9AC_0326_1489_D68C

若要使用底線字元作為前置分隔符號,您必須將下列項目新增至 Visual Basic 專案 (*.vbproj) 檔:

<PropertyGroup>
  <LangVersion>15.5</LangVersion>
</PropertyGroup>

如需詳細資訊,請參閱選取 Visual Basic 語言版本

數值常值也可包含 ULul類型字元來表示 ULong 資料類型,如下列範例所示。

Dim number = &H_00_00_0A_96_2F_AC_14_D7ul

程式設計提示

  • 負數。 因為 ULong 為不帶正負號的型別,所以無法代表負數。 如果您在評估為類型 ULong 的運算式上使用一元減號 (-) 運算子,Visual Basic 會先將運算式轉換成 Decimal

  • CLS 合規性。 ULong 資料類型不屬於 Common Language Specification (CLS),因此符合 CLS 規範的程式碼無法取用使用該資料類型的元件。

  • Interop 考量。 如果您要使用的元件不是針對 .NET Framework 而撰寫的 (例如 Automation 或 COM 物件),請記住,ulong 等類型在其他環境中可有不同的資料寬度 (32 位元)。 如果您要將 32 位元引數傳遞至這類元件,請在受控 Visual Basic 程式碼中將其宣告為 UInteger,而不是 ULong

  • 擴展。 ULong 資料類型可擴展為 DecimalSingleDouble。 這表示,您可以將 ULong 轉換成這些類型的任何一種,而不會發生 System.OverflowException 錯誤。

  • 類型字元。 將常值類型字元 UL 附加到常值,會強制其成為 ULong 資料類型。 ULong 沒有識別項型別字元。

  • Framework 類型。 在 .NET Framework 中對應的類型為 System.UInt64 結構。

另請參閱