unchecked (C# 參考)
更新:2007 年 11 月
unchecked 關鍵字是用來隱藏整數類資料型別 (Integral Type) 之算術運算和轉換的溢位檢查。
在 unchecked 內容中,如果運算式產生在目的型別範圍之外的值,結果將被截斷。例如:
unchecked
{
int val = 2147483647 * 2;
}
因為上述計算是在 unchecked 區塊中執行,所以會忽略結果對整數來說太大的事實,並且將值 -2 指派給 val。根據預設會啟用溢位偵測,這跟使用 checked 有相同的效果。
在上述範例中會省略 unchecked,因為運算式會使用在編譯階段才知道結果的常數,所以會發生編譯錯誤。unchecked 關鍵字也會隱藏在執行階段產生 OverflowException 之非常數運算式的溢位偵測。
unchecked 關鍵字也可以用來當做運算子,如下所示:
public int UncheckedAdd(int a, int b)
{
return unchecked(a + b);
}
範例
這個範例將示範如何使用帶有常數運算式的 unchecked 陳述式。
class TestClass
{
const int x = 2147483647; // Max int
const int y = 2;
static void Main()
{
int z;
unchecked
{
z = x * y;
}
Console.WriteLine("Unchecked output value: {0}", z);
}
}
// Output: Unchecked output value: -2
C# 語言規格
如需詳細資料,請參閱 C# 語言規格中的下列章節:
5.3.3.2 Block 陳述式、checked 和 unchecked 陳述式
7.5.12 checked 和 unchecked 運算子
8.11 checked 和 unchecked 陳述式