Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Содержит целое число без знака от 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.