UInteger - тип данных
Содержит целые числа без знака от 32-разрядного (4-байта) от 0 до 4 294 967 295.
Замечания
Тип UInteger
данных предоставляет наибольшее значение без знака в наиболее эффективной ширине данных.
Значение по умолчанию для типа UInteger
— 0.
Литеральные назначения
Можно объявить и инициализировать UInteger
переменную, назначив ему десятичный литерал, шестнадцатеричный литерал, восьмеричный литерал или (начиная с Visual Basic 2017) двоичный литерал. Если целочисленный литерал выходит за пределы диапазона UInteger
(то есть, если он меньше UInt32.MinValue или больше UInt32.MaxValue), возникает ошибка компиляции.
В следующем примере целые числа, равные 3 000 000 000 и представленные в виде десятичного, шестнадцатеричного и двоичного литерала, назначаются значениям 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
Примечание.
Вы используете префикс или обозначает шестнадцатеричный литерал, префикс &h
или &H
&B
для обозначения двоичного литерала, а также префикса &b
&o
или &O
для обозначения восьмеричного литерала. У десятичных литералов префиксов нет.
Начиная с 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, можно также использовать символ подчеркивания (_
) в качестве ведущего разделителя между префиксом и шестнадцатеричными, двоичными или восьмизначными цифрами. Например:
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, не может использовать компонент, использующий его.Вопросы взаимодействия. Если вы взаимодействуете с компонентами, не написанными для платформа .NET Framework, например автоматизация или COM-объекты, помните, что такие типы, как
uint
могут иметь другую ширину данных (16 бит) в других средах. Если вы передаете 16-разрядный аргумент в такой компонент, объявите его какUShort
неUInteger
в управляемом коде Visual Basic.Расширение. Тип
UInteger
данных расширяется доLong
,ULong
иSingle
Decimal
Double
. Это означает, что вы можете преобразоватьUInteger
в любой из этих типов без возникновения System.OverflowException ошибки.Тип символов. Добавление символов
UI
литерального типа к литералу заставляет его к типуUInteger
данных.UInteger
не имеет символа типа идентификатора.Тип платформы. В .NET Framework данный тип соответствует структуре System.UInt32.