目次:
定義-Unchecked Operatorとはどういう意味ですか?
C#の未チェック演算子は、式と変換の評価中にオーバーフローチェックを無効にするために使用される演算子です。
数値データ型を含む式を使用して整数型の算術演算を実行しているときに、演算の結果がその型に基づいて特定のビット数で割り当てられた数で表現するには大きすぎる場合、オーバーフロー例外が発生する可能性があります。 オーバーフローが操作の許容可能な結果である場合、例外を抑制してプログラムを続行する必要があります。 このようなシナリオでは、未チェックの演算子を使用して、算術オーバーフローが結果の切り捨てで無視される未チェックのコンテキストを設定します。
オーバーフローの可能性を無視するC / C ++とは対照的に、C#は、チェックされた演算子とチェックされていない演算子を提供することにより、オーバーフローを処理または無視する機能を提供します。 チェックされていない演算子は、多くの場合、チェックされたコンテキストでコンパイルされるプロジェクトのセクションで使用されます。 未チェックの演算子を使用できるアルゴリズムには、チェックサム、暗号化ロジック、乱数生成などがあります。
Techopediaは未チェックのオペレーターを説明します
未チェックの演算子は、式で「unchecked」というキーワードとともに、コードブロック内のステートメントとして使用されます。 整数のオーバーフローが発生すると、実行の継続中に結果の最上位ビットが破棄される実行コンテキストを設定します。 uncheckedのコンテキストは、ネストされた関数呼び出しではなく、「unchecked」ステートメントに囲まれたステートメントに適用されます。
たとえば、データ型の2つの大きな整数の積で、オーバーフローの発生をチェックする必要なく、何らかの目的でshortを使用する必要がある場合、未チェックの演算子を使用できます。
一般に、定数項を含む式は、コンパイル時にのみオーバーフローをチェックできます。 未チェックの演算子を使用すると、このような式のオーバーフローや、実行時とコンパイル時の両方でデフォルトでチェックされていない定数でない用語を含む式のチェックを回避できます。
チェックされていない演算子はオーバーロードできません。
未チェックの演算子を使用するとパフォーマンスが低下するため、オーバーフローによって問題が発生しない場合にのみ使用してください。
この定義はC#のコンテキストで記述されました
