質問

が必を使用していま checked オペレーターのC#?
この適切な例外を扱う?

役に立ちましたか?

解決

あなたは式(サイレント)オーバーフローに対してcheckedtoガードを使用します。
あなたは無害オーバーフローが発生する可能性があります知っているときとuncheckedを使用しています。

あなたが(プロジェクト全体)のデフォルトに依存したくない場所でコンパイラの設定を両方を使用します。

両方の形式はかなりまれですが、重大な整数演算を行う場合、それは可能オーバーフローを考える価値がある。

また、彼らは2つの形式で来ることに注意します:

 x = unchecked(x + 1);    // ( expression )
 unchecked { x = x + 1;}  // { statement(s) }

他のヒント

checkedは、そうでない場合は、

見過ごされるのSystem.OverFlowExceptionを拾うのに役立ちます
int result = checked (1000000 * 10000000);   
    // Error: operation > overflows at compile time

int result = unchecked (1000000 * 10000000);  
    // No problems, compiles fine

から の確認、チェック事業者

の確認、チェック事業者 の制御に使用されるオーバーフロー 確認コンテキスト一体型 算術演算、換。

にチェック、場合には表現 生産は外部の 範囲の先タイプの 結果に依存するかどうかの 表現が一定または 非定数です。一定の表現 原因をコンパイル時にエラー、中 非定数式の評価 実行時に引上げることができます。

にチェックなし、場合には 表現を生産する値 の範囲外の行先 タイプは切り捨てられます。

確認, チェック

checkeduncheckedあなたは数学整数行っているそれらの時にも便利です。特に操作をインクリメントし、あなたが過去UInt32.MaxValueをインクリメントします知っている、それが無害オーバーフロー戻っ0にしたい。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top