サーチ…


構文

  • チェック(a + b)//チェックされた式
  • チェックされていない(a + b)//チェックされていない式
  • チェック{c = a + b; c + = 5; } //チェックされたブロック
  • チェックされていない{c = a + b; c + = 5; } //未チェックのブロック

チェックされているとチェックされていない

C#ステートメントは、チェックされたコンテキストまたはチェックされていないコンテキストで実行されます。チェックされたコンテキストでは、算術オーバーフローによって例外が発生します。チェックされていないコンテキストでは、算術オーバーフローは無視され、結果は切り捨てられます。

short m = 32767;   
short n = 32767;
int result1 =  checked((short)(m + n));   //will throw an OverflowException
int result2 =  unchecked((short)(m + n)); // will return -2

どちらも指定されていない場合、デフォルトコンテキストはコンパイラオプションなどの他の要素に依存します。

スコープとしてチェックされ、チェックされていない

キーワードは、複数の操作を確認するためにスコープを作成することもできます。

short m = 32767;
short n = 32767;
checked
{
    int result1 = (short)(m + n); //will throw an OverflowException
}
unchecked
{
    int result2 = (short)(m + n); // will return -2
}


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow