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


ulong (справочник по C#)

Обновлен: Ноябрь 2007

Ключевое слово ulong обозначает целочисленный тип, в котором хранятся значения, размер и диапазон которых приведены в следующей таблице.

Тип

Диапазон

Размер

Тип платформы .NET Framework

ulong

От 0 до 18 446 744 073 709 551 615

64-разрядное целое число без знака

System.UInt64

Литералы

Переменную типа ulong можно объявить и инициализировать, как показано в этом примере:

ulong uLong = 9223372036854775808;

Если целочисленный литерал не имеет суффикса, его тип — первый из этих типов, в котором может быть представлено его значение: int, uint, long, ulong. В приведенном выше примере таким типом является ulong.

Суффиксы можно также использовать для задания типа литерала в соответствии со следующими правилами:

  • Если используется L или l, то в зависимости от размера литерал будет иметь целочисленный тип long или ulong.

    t98873t4.alert_note(ru-ru,VS.90).gifПримечание.

    Букву "l" в нижнем регистре можно использовать в качестве суффикса. Однако при этом выдается предупреждение компилятора, так как букву "l" легко перепутать с цифрой "1". Для ясности используйте "L".

  • Если используется U или u, то в зависимости от размера литерал будет иметь целочисленный тип uint или ulong.

  • Если используется UL, ul, Ul, uL, LU, lu, Lu или lU, то в зависимости от размера литерал будет иметь целочисленный тип ulong.

    Например, результатом использования трех следующих операторов будет системный тип UInt64, соответствующий псевдониму ulong:

    Console.WriteLine(9223372036854775808L.GetType());
    Console.WriteLine(123UL.GetType());
    Console.WriteLine((123UL + 456).GetType());
    

Обычно суффикс используется для вызова перегруженных методов. Рассмотрим, например, следующие перегруженные методы, в которых используются параметры типов ulong и int:

public static void SampleMethod(int i) {}
public static void SampleMethod(ulong l) {}

Использование суффикса с параметром ulong гарантирует вызов метода правильного типа, например:

SampleMethod(5);    // Calling the method with the int parameter
SampleMethod(5UL);  // Calling the method with the ulong parameter

Преобразования

Существует предопределенное неявное преобразование типа ulong в тип float, double или decimal.

Неявного преобразования типа ulong в любой целочисленный тип не существует. Например, следующий оператор вызывает ошибку компиляции без явного приведения:

long long1 = 8UL;   // Error: no implicit conversion from ulong

Существует предопределенное неявное преобразование типа byte, ushort, uint или char в тип ulong.

Кроме того, неявного преобразования типов с плавающей запятой в тип ulong не существует. Например, следующая инструкция приводит к ошибке компилятора, если не выполнить явное приведение типов:

// Error -- no implicit conversion from double:
ulong x = 3.0;
// OK -- explicit conversion:
ulong y = (ulong)3.0;  

Сведения об арифметических выражениях, в которых одновременно используются переменные типов с плавающей запятой и целочисленных типов, см. в разделе float и double.

Дополнительные сведения о правилах выполнения неявных числовых преобразований см. в разделе Таблица неявных числовых преобразований (Справочник по C#).

Спецификация языка C#

Дополнительные сведения см. в следующих разделах документа Спецификация языка C#:

  • 1.3 Типы и переменные

  • 4.1.5 Целочисленные типы

См. также

Основные понятия

Руководство по программированию в C#

Ссылки

Ключевые слова C#

Таблица целых типов (Справочник по C#)

Таблица встроенных типов (Справочник по C#)

Таблица неявных числовых преобразований (Справочник по C#)

Таблица явных числовых преобразований (справочник по C#)

UInt64

Другие ресурсы

Справочник по C#