UInteger - тип данныхUInteger data type

Содержит 32-разрядные (4-байтные) целые числа без знака, имеющие значение от 0 до 4 294 967 295.Holds unsigned 32-bit (4-byte) integers ranging in value from 0 through 4,294,967,295.

КомментарииRemarks

UIntegerТип данных предоставляет наибольшее значение без знака в наиболее эффективной ширине данных.The UInteger data type provides the largest unsigned value in the most efficient data width.

Значение по умолчанию для типа UInteger — 0.The default value of UInteger is 0.

Присваивания литераловLiteral assignments

Можно объявить и инициализировать UInteger переменную, назначив ей десятичный литерал, шестнадцатеричный литерал, Восьмеричный литерал или (начиная с Visual Basic 2017) двоичный литерал.You can declare and initialize a UInteger variable by assigning it a decimal literal, a hexadecimal literal, an octal literal, or (starting with Visual Basic 2017) a binary literal. Если целочисленный литерал выходит за пределы диапазона UInteger (то есть, если он меньше UInt32.MinValue или больше UInt32.MaxValue), возникает ошибка компиляции.If the integer literal is outside the range of UInteger (that is, if it is less than UInt32.MinValue or greater than UInt32.MaxValue, a compilation error occurs.

В следующем примере целые числа, равные 3 000 000 000 и представленные в виде десятичного, шестнадцатеричного и двоичного литерала, назначаются значениям UInteger.In the following example, integers equal to 3,000,000,000 that are represented as decimal, hexadecimal, and binary literals are assigned to UInteger values.

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 обозначить Восьмеричный литерал.You use the prefix &h or &H to denote a hexadecimal literal, the prefix &b or &B to denote a binary literal, and the prefix &o or &O to denote an octal literal. У десятичных литералов префиксов нет.Decimal literals have no prefix.

Начиная с Visual Basic 2017, можно также использовать символ подчеркивания () в _ качестве разделителя цифр, чтобы улучшить удобочитаемость, как показано в следующем примере.Starting with Visual Basic 2017, you can also use the underscore character, _, as a digit separator to enhance readability, as the following example shows.

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, можно также использовать символ подчеркивания () в _ качестве начального разделителя между префиксом и шестнадцатеричными, двоичными или восьмеричными цифрами.Starting with Visual Basic 15.5, you can also use the underscore character (_) as a leading separator between the prefix and the hexadecimal, binary, or octal digits. Пример:For example:

Dim number As UInteger = &H_0F8C_0326

Чтобы использовать символ подчеркивания в качестве начального разделителя, нужно добавить в файл проекта Visual Basic (*.vbproj) следующий элемент:To use the underscore character as a leading separator, you must add the following element to your Visual Basic project (*.vbproj) file:

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

Для получения дополнительной информации см.For more information see setting the Visual Basic language version.

Числовые литералы также могут включать UI ui символ типа или для обозначения UInteger типа данных, как показано в следующем примере.Numeric literals can also include the UI or ui type character to denote the UInteger data type, as the following example shows.

Dim number = &H_0FAC_14D7ui

Советы по программированиюProgramming tips

UInteger Integer Типы данных и обеспечивают оптимальную производительность на 32-разрядном процессоре, поскольку меньшие целочисленные типы ( UShort ,, Short Byte и SByte ), даже если они используют меньшее количество битов, занимают больше времени на загрузку, хранение и выборку.The UInteger and Integer data types provide optimal performance on a 32-bit processor, because the smaller integer types (UShort, Short, Byte, and SByte), even though they use fewer bits, take more time to load, store, and fetch.

  • Отрицательные числа.Negative Numbers. Так как UInteger является неподписанным типом, он не может представлять отрицательное число.Because UInteger is an unsigned type, it cannot represent a negative number. При использовании оператора унарного минуса ( - ) в выражении, результатом которого является тип UInteger , Visual Basic преобразует выражение в Long First.If you use the unary minus (-) operator on an expression that evaluates to type UInteger, Visual Basic converts the expression to Long first.

  • Соответствие CLS.CLS Compliance. UIntegerТип данных не является частью спецификации CLS, поэтому CLS-совместимый код не может использовать компонент, который его использует.The UInteger data type is not part of the Common Language Specification (CLS), so CLS-compliant code cannot consume a component that uses it.

  • Вопросы взаимодействия.Interop Considerations. Если вы взаимодействуете с компонентами, которые не написаны для .NET Framework, например автоматизации или COM-объекты, помните, что такие типы, как, uint могут иметь разную ширину данных (16 бит) в других средах.If you are interfacing with components not written for the .NET Framework, for example Automation or COM objects, keep in mind that types such as uint can have a different data width (16 bits) in other environments. При передаче 16-разрядного аргумента в такой компонент объявите его как UShort вместо UInteger в управляемом коде Visual Basic.If you are passing a 16-bit argument to such a component, declare it as UShort instead of UInteger in your managed Visual Basic code.

  • Расширяющие.Widening. UIntegerТип данных расширяется до Long , ULong , Decimal , Single и Double .The UInteger data type widens to Long, ULong, Decimal, Single, and Double. Это означает, что можно преобразовать UInteger в любой из этих типов без возникновения System.OverflowException ошибки.This means you can convert UInteger to any of these types without encountering a System.OverflowException error.

  • Символы типа.Type Characters. При добавлении символов типа литерала UI к литералу он применяет его к UInteger типу данных.Appending the literal type characters UI to a literal forces it to the UInteger data type. UIntegerне имеет символа типа идентификатора.UInteger has no identifier type character.

  • Тип Framework.Framework Type. В .NET Framework данный тип соответствует структуре System.UInt32.The corresponding type in the .NET Framework is the System.UInt32 structure.

См. также разделSee also