更新:2007 年 11 月
long 关键字表示一种整型,该类型根据下表显示的大小和范围存储值。
类型 | 范围 | 大小 | .NET Framework 类型 |
---|---|---|---|
long | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 有符号 64 位整数 |
标识符
可如下例所示声明并初始化 long 类型的变量:
复制代码 | |
---|---|
long long1 = 4294967296; |
如果整数没有后缀,则其类型为以下类型中可表示其值的第一个类型:
还可以像下面这样,在 long 类型中使用后缀 L:
复制代码 | |
---|---|
long long2 = 4294967296L; |
当使用后缀 L 时,将根据整数的大小确定它的类型为 long 还是
此后缀常用于调用重载方法。以下面使用 long 和
复制代码 | |
---|---|
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(在关系表达式或布尔表达式中为
复制代码 | |
---|---|
898L + 88 |
说明: |
---|
也可用小写字母“l”作后缀。但是,因为字母“l”容易与数字“1”混淆,会生成编译器警告。为清楚起见,请使用“L”。 |
有关兼用浮点型和整型的算术表达式的信息,请参见
转换
存在从 long 到
复制代码 | |
---|---|
int x = 8L; // Error: no implicit conversion from long to int int x = (int)8L; // OK: explicit conversion to int |
存在从
还请注意,不存在从浮点型到 long 类型的隐式转换。例如,除非使用显式强制转换,否则以下语句将生成一个编译器错误:
复制代码 | |
---|---|
long x = 3.0; // Error: no implicit conversion from double long y = (long)3.0; // OK: explicit conversion |
C# 语言规范
有关更多信息,请参见 C# 语言规范中的以下各章节:
1.3 类型和变量
4.1.5 整型