UInteger — Typ danych
Zawiera niepodpisane 32-bitowe (4-bajtowe) liczby całkowite z zakresu od 0 do 4294 967 295.
Uwagi
Typ UInteger
danych zapewnia największą niepodpisaną wartość w najbardziej wydajnej szerokości danych.
Wartość domyślna to UInteger
0.
Przypisania literału
Zmienną UInteger
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 UInteger
(czyli jeśli jest mniejszy lub większy niż UInt32.MinValue UInt32.MaxValue, wystąpi błąd kompilacji.
W poniższym przykładzie liczby całkowite równe 3 000 000 000, które są reprezentowane jako liczby dziesiętne, szesnastkowe i literały binarne są przypisywane do UInteger
wartości.
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
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 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
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 UInteger = &H_0F8C_0326
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ć UI
znak lub ui
typu, aby oznaczyć UInteger
typ danych, jak pokazano w poniższym przykładzie.
Dim number = &H_0FAC_14D7ui
Porady dotyczące programowania
Typy UInteger
danych i Integer
zapewniają optymalną wydajność procesora 32-bitowego, ponieważ mniejsze typy całkowite (UShort
, Short
, Byte
i SByte
), mimo że używają mniejszej liczby bitów, zajmują więcej czasu na ładowanie, przechowywanie i pobieranie.
Liczby ujemne. Ponieważ
UInteger
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 konwertujeUInteger
wyrażenie naLong
pierwsze.Zgodność ze środowiskaMI CLS. Typ
UInteger
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
uint
mogą mieć inną szerokość danych (16 bitów) w innych środowiskach. Jeśli przekazujesz 16-bitowy argument do takiego składnika, zadeklaruj go jakoUShort
zamiastUInteger
w zarządzanym kodzie Visual Basic.Poszerzenie. Typ
UInteger
danych rozszerza się naLong
, ,ULong
,Decimal
Single
, iDouble
. Oznacza to, że można przekonwertowaćUInteger
na dowolny z tych typów bez napotkania błędu System.OverflowException .Wpisz znaki. Dołączanie znaków
UI
typu literału do literału wymusza jegoUInteger
typ danych.UInteger
nie ma znaku typu identyfikatora.Typ struktury. Odpowiedni typ w programie .NET Framework jest strukturą System.UInt32 .