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


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

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

Тип

Диапазон

Размер

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

long

От –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807

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

Int64

Литералы

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

long long1 = 4294967296;

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

Можно также использовать суффикс L с типом long:

long long2 = 4294967296L;

При использовании суффикса L для литерала используется целочисленный тип long или ulong в зависимости от его размера. В данном случае используется long, так как значение меньше допустимого диапазона для типа ulong.

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

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

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

SampleMethod(5);    // Calling the method with the int parameter
SampleMethod(5L);   // Calling the method with the long parameter

Тип long можно использовать в одном выражении с другими целочисленными типами, при этом выражение вычисляется, как имеющее тип long (или bool для реляционных или логических выражений). Например, следующее выражение вычисляется, как имеющее тип long:

898L + 88

Примечание

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

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

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

Существует предопределенное неявное преобразование типа long в тип float, double или decimal. В противном случае необходимо использовать приведение. Например, следующий оператор вызывает ошибку компиляции без явного приведения:

int x = 8L;        // Error: no implicit conversion from long to int
int x = (int)8L;   // OK: explicit conversion to int

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

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

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

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

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

См. также

Ссылки

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

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

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

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

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

Int64

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

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

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

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