Тип данных ULong (Visual Basic)
Содержит целое число без знака от 64-разрядного (8-байта) от 0 до 18 446 744 073 709 551 615 (более 1,84 раза 10 ^ 19).
Замечания
ULong
Используйте тип данных, чтобы содержать слишком большие двоичные данные или UInteger
максимально возможные значения целого числа без знака.
Значение по умолчанию для типа ULong
— 0.
Литеральные назначения
Можно объявить и инициализировать ULong
переменную, назначив ему десятичный литерал, шестнадцатеричный литерал, восьмеричный литерал или (начиная с Visual Basic 2017) двоичный литерал. Если целочисленный литерал выходит за пределы диапазона ULong
(то есть, если он меньше UInt64.MinValue или больше UInt64.MaxValue), возникает ошибка компиляции.
В следующем примере целые числа, равные 7 934 076 125 и представленные в виде десятичного, шестнадцатеричного и двоичного литерала, назначаются значениям ULong
.
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
для обозначения восьмеричного литерала. У десятичных литералов префиксов нет.
Начиная с Visual Basic 2017, вы также можете использовать символ подчеркивания, _
как разделитель цифр для повышения удобочитаемости, как показано в следующем примере.
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, можно также использовать символ подчеркивания (_
) в качестве ведущего разделителя между префиксом и шестнадцатеричными, двоичными или восьмизначными цифрами. Например:
Dim number As ULong = &H_F9AC_0326_1489_D68C
Чтобы использовать символ подчеркивания в качестве ведущего разделителя, необходимо добавить следующий элемент в файл проекта Visual Basic (*.vbproj):
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Дополнительные сведения см. в разделе "Выбор версии языка Visual Basic".
Числовые литералы также могут включать UL
символ или ul
символ типа для обозначения ULong
типа данных, как показано в следующем примере.
Dim number = &H_00_00_0A_96_2F_AC_14_D7ul
Советы по программированию
Отрицательные числа. Так как
ULong
это неподписанный тип, он не может представлять отрицательное число. Если вы используете унарный оператор минус (-
) для выражения, которое вычисляет типULong
, Visual Basic преобразует выражениеDecimal
в первое.Соответствие CLS.
ULong
Тип данных не является частью спецификации CLS, поэтому код, совместимый с CLS, не может использовать компонент, использующий его.Вопросы взаимодействия. Если вы взаимодействуете с компонентами, не написанными для платформа .NET Framework, например для объектов Automation или COM, помните, что такие типы, как
ulong
может иметь другую ширину данных (32 бита) в других средах. Если вы передаете 32-разрядный аргумент в такой компонент, объявите его какUInteger
неULong
в управляемом коде Visual Basic.Расширение. Тип
ULong
данных расширяется доDecimal
,Single
иDouble
. Это означает, что вы можете преобразоватьULong
в любой из этих типов без возникновения System.OverflowException ошибки.Тип символов. Добавление символов
UL
литерального типа к литералу заставляет его к типуULong
данных.ULong
не имеет символа типа идентификатора.Тип платформы. В .NET Framework данный тип соответствует структуре System.UInt64.