Тип данных ULong (Visual Basic)ULong data type (Visual Basic)

Содержит 64-разрядные (8-байтные) целые числа без знака в диапазоне от 0 до 18446744073709551615 (более 1,84 раза больше 10 ^ 19).Holds unsigned 64-bit (8-byte) integers ranging in value from 0 through 18,446,744,073,709,551,615 (more than 1.84 times 10 ^ 19).

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

Используйте ULong тип данных для хранения двоичных данных, которые слишком велики для UInteger , или наибольшего возможного целого числа без знака.Use the ULong data type to contain binary data too large for UInteger, or the largest possible unsigned integer values.

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

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

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

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

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

Примечание

Используйте префикс &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 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

Начиная с 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 ULong = &H_F9AC_0326_1489_D68C

Чтобы использовать символ подчеркивания в качестве начального разделителя, нужно добавить в файл проекта 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.

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

Dim number = &H_00_00_0A_96_2F_AC_14_D7ul

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

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

  • Соответствие CLS.CLS Compliance. ULongТип данных не является частью спецификации CLS, поэтому CLS-совместимый код не может использовать компонент, который его использует.The ULong 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-объекты, помните, что такие типы, как, ulong могут иметь разную ширину данных (32 бит) в других средах.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 ulong can have a different data width (32 bits) in other environments. При передаче аргумента 32-bit в такой компонент объявите его как UInteger вместо ULong в управляемом коде Visual Basic.If you are passing a 32-bit argument to such a component, declare it as UInteger instead of ULong in your managed Visual Basic code.

    Более того, Автоматизация не поддерживает 64-разрядные целые числа в Windows 95, Windows 98, Windows ME или Windows 2000.Furthermore, Automation does not support 64-bit integers on Windows 95, Windows 98, Windows ME, or Windows 2000. Невозможно передать ULong аргумент Visual Basic в компонент автоматизации на этих платформах.You cannot pass a Visual Basic ULong argument to an Automation component on these platforms.

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

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

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

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