Typ danych ULong (Visual Basic)

Zawiera niepodpisane 64-bitowe (8-bajtowe) liczby całkowite z zakresu od 0 do 18 446 744 073 709 551 615 (więcej niż 1,84 razy 10 ^ 19).

Uwagi

ULong Użyj typu danych, aby zawierać zbyt duże dane binarne dla UIntegerwartości , lub największe możliwe niepodpisane wartości całkowite.

Wartość domyślna to ULong 0.

Przypisania literału

Zmienną ULong można zadeklarować i zainicjować, przypisując jej literał dziesiętny, literał szesnastkowy, literał ósemkowy lub (począwszy od języka Visual Basic 2017) literał binarny. Jeśli literał liczby całkowitej znajduje się poza zakresem ULong (czyli jeśli jest mniejszy lub większy niż UInt64.MinValueUInt64.MaxValue, wystąpi błąd kompilacji.

W poniższym przykładzie liczby całkowite równe 7 934 076 125, które są reprezentowane jako liczby dziesiętne, szesnastkowe i literały binarne są przypisywane do ULong wartości.

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

Uwaga

Należy użyć prefiksu &h lub &H oznaczyć literał szesnastkowy, prefiks &b lub &B oznaczać literał binarny oraz prefiks &o lub &O oznaczać literał ósemkowy. Literały dziesiętne nie mają prefiksu.

Począwszy od języka Visual Basic 2017, można również użyć znaku podkreślenia , _jako separatora cyfr, aby zwiększyć czytelność, jak pokazano w poniższym przykładzie.

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

Począwszy od języka Visual Basic 15.5, można również użyć znaku podkreślenia (_) jako separatora wiodącego między prefiksem a cyframi szesnastkowymi, binarnymi lub ósemkowymi. Na przykład:

Dim number As ULong = &H_F9AC_0326_1489_D68C

Aby użyć znaku podkreślenia jako separatora wiodącego, należy dodać następujący element do pliku projektu Visual Basic (*.vbproj):

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

Aby uzyskać więcej informacji, zobacz Wybieranie wersji języka Visual Basic.

Literały liczbowe mogą również zawierać UL znak lub ultypu, aby oznaczyć ULong typ danych, jak pokazano w poniższym przykładzie.

Dim number = &H_00_00_0A_96_2F_AC_14_D7ul

Porady dotyczące programowania

  • Liczby ujemne. Ponieważ ULong jest typem niepodpisanym, nie może reprezentować liczby ujemnej. Jeśli używasz operatora jednoargumentowego minus (-) w wyrażeniu, które oblicza typ , Visual Basic konwertuje ULongwyrażenie na Decimal pierwsze.

  • Zgodność ze środowiskaMI CLS. Typ ULong danych nie jest częścią specyfikacji języka wspólnego (CLS), dlatego kod zgodny ze specyfikacją CLS nie może używać składnika, który go używa.

  • Zagadnienia dotyczące międzyoperacyjności. Jeśli łączysz się ze składnikami, które nie są napisane dla programu .NET Framework, na przykład dla obiektów Automation lub COM, pamiętaj, że typy, takie jak ulong mogą mieć inną szerokość danych (32 bity) w innych środowiskach. Jeśli przekazujesz 32-bitowy argument do takiego składnika, zadeklaruj go jako UInteger zamiast ULong w zarządzanym kodzie Visual Basic.

  • Poszerzenie. Typ ULong danych rozszerza się na Decimal, Singlei Double. Oznacza to, że można przekonwertować ULong na dowolny z tych typów bez napotkania błędu System.OverflowException .

  • Wpisz znaki. Dołączanie znaków UL typu literału do literału wymusza jego ULong typ danych. ULong nie ma znaku typu identyfikatora.

  • Typ struktury. Odpowiedni typ w programie .NET Framework jest strukturą System.UInt64 .

Zobacz też