Поделиться через


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, , ShortByteиSByte), даже если они используют меньше битов, занимает больше времени для загрузки, хранения и получения.

  • Отрицательные числа. Так как UInteger это неподписанный тип, он не может представлять отрицательное число. Если вы используете унарный оператор минус (-) для выражения, которое вычисляет тип UInteger, Visual Basic преобразует выражение Long в первое.

  • Соответствие CLS. UInteger Тип данных не является частью спецификации CLS, поэтому код, совместимый с CLS, не может использовать компонент, использующий его.

  • Вопросы взаимодействия. Если вы взаимодействуете с компонентами, не написанными для платформа .NET Framework, например автоматизация или COM-объекты, помните, что такие типы, как uint могут иметь другую ширину данных (16 бит) в других средах. Если вы передаете 16-разрядный аргумент в такой компонент, объявите его как UShort не UInteger в управляемом коде Visual Basic.

  • Расширение. Тип UInteger данных расширяется до Long, ULongи SingleDecimalDouble. Это означает, что вы можете преобразовать UInteger в любой из этих типов без возникновения System.OverflowException ошибки.

  • Тип символов. Добавление символов UI литерального типа к литералу заставляет его к типу UInteger данных. UInteger не имеет символа типа идентификатора.

  • Тип платформы. В .NET Framework данный тип соответствует структуре System.UInt32.

См. также