C#のchecked/uncheckedコンテキストとは?オーバーフローチェックの違いを解説
C#では、コードをchecked(チェックあり)またはunchecked(チェックなし)のコンテキストで実行できます。
checkedコンテキストでは算術オーバーフローが発生した時点で例外がスローされますが、uncheckedコンテキストでは算術オーバーフローは無視され、処理がそのまま続行されます。
checked:オーバーフローチェックを有効にする
checkedキーワードを使用すると、整数型の算術演算や変換に対してオーバーフローのチェックを明示的に有効にできます。使い方はシンプルで、式の前にcheckedキーワードを付けるだけです。
なお、オーバーフローチェックは、コンパイラオプション(/checked)やプロジェクトの環境設定によって有効にすることも可能です。
res = checked(val + 10);
たとえば、変数valの値が2147483647(int型の最大値)だった場合、このコードはcheckedコンテキストで実行されるため、System.OverflowExceptionがスローされます。つまり、実行時にオーバーフローが厳密に検出されるのです。
unchecked:オーバーフローチェックを無効にする
uncheckedキーワードを使用すると、整数型の算術演算や変換に対するオーバーフローのチェックを明示的に無効にできます。こちらも同様に、式の前にuncheckedキーワードを付けるだけで利用できます。
uncheckedコンテキストでは算術オーバーフローは無視されます。パフォーマンスを優先したい場合や、意図的にラップアラウンド(桁あふれ)を許容したいケースで活用します。
res = unchecked(val + 10);
たとえば、変数valの値が2147483647だったとしても、uncheckedキーワードによってオーバーフローチェックが無効化されているため、このコードはエラーをスローせず、結果はint型の最小値である-2147483648にラップされます。
まとめ
- checked:オーバーフロー発生時に
OverflowExceptionをスローする - unchecked:オーバーフローを無視し、値を切り詰めて処理を続行する
-
HTMLのinput要素におけるchecked属性の使い方を解説
checked属性とはinput要素のchecked属性は、Webページが読み込まれた時点で、チェックボックス(type=checkbox)にあらかじめチェックが入った状態で表示するための属性です。ラジオボタン(type=radio)に対しても同様に使用できます。基本的な記述方法(構文)は以下のとおりです。<input type=checkbox checked>上記のように「checked」を指定することで、ページ読み込み時にチェックボックスが選択された状態になります。実装例それでは、input要素のchecked属性を使った具体的なサンプルコードを見ていきましょう。以下は、会員
-
アバスト(Avast)に例外を追加する方法!ファイル・URLの除外設定手順を解説
Avast Software(アバスト)はチェコ共和国に本社を置く多国籍サイバーセキュリティ企業です。同社が提供する「Avast Antivirus(アバスト アンチウイルス)」は、世界で最も人気のあるコンピュータセキュリティソフトの一つであり、4億3,500万人以上のユーザーに利用されています。マルウェア対策ソフトの中でも、アバストは最大の市場シェアを誇っています。アバストはウイルスやマルウェアの検出に非常に優れたソフトウェアですが、場合によっては無害なアプリケーションやファイルまで誤って検知してしまうことがあります。そこで本記事では、特定のアプリケーションやファイルを「例外」として登録し、