long (C# 參考)
long 關鍵字表示一種儲存數值的整數型別,其儲存數值的大小與範圍如下表所示。
型別 |
Range |
Size |
.NET Framework 型別 |
---|---|---|---|
long |
-9,223,372,036,854,775,808 至 9,223,372,036,854,775,807 |
帶正負號的 64 位元整數 |
常值
您可以採用以下範例中同時宣告和初始化 long 變數的做法:
long long1 = 4294967296;
當整數常值沒有後置字元時,它的型別會是下列可表示其值的第一個型別:int、unit、long 和 ulong。在上述範例中是 long 型別,因為它超過 unit 的範圍 (如需整數類資料型別之儲存體大小的詳細資訊,請參閱整數類資料型別表 (C# 參考))。
您也可以將後置字元 L 與 long 型別一起使用,例如:
long long2 = 4294967296L;
使用後置字元 L 時,常值整數的型別會依據其大小決定是 long 或 ulong。在這個情況下,因為它小於 ulong 的範圍,所以會是 long。
後置字元的常見用於呼叫多載方法。以下列使用 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# 語法和用法的限定來源。