算術における整数型の演算と変換のオーバーフローを明示的にチェックするには、算術における整数型の演算と変換に対してオーバーフロー チェックを有効にする必要があります。これは、C# で selected キーワードと呼ばれるキーワードを使用し、checked を使用することで可能になります。 C# の式のキーワードを使用すると、定数式は実行時にオーバーフローがチェックされ、オーバーフローが発生した場合はコンパイラによってオーバーフロー例外が発生しますが、非定数の式は実行時にオーバーフローがチェックされません。チェックされたキーワードとオーバーフロー、そのような場合には例外は発生しません。
チェックされたキーワード C# の構文は次のとおりです:
checked(Expression)
コード:
//a namespace called check is defined namespace check { //a class called space is defined public class space { //main method is called public static void Main() { // Using checked keyword to check if the value is over flowing checked { // Increasing the value upto the value of maximum int number = 0; for (int x = 0; x < int.MaxValue; x++) { number++; } // Increasing the value upto the value of maximum again (error). for (int x = 0; x < int.MaxValue; x++) { number++; } } } } }
出力:
上記のプログラムでは、checkという名前空間が定義されています。次に、space というクラスが定義されます。次に、main メソッドが呼び出されます。次に、checked キーワードを使用して、値を最大値まで増やして、値がオーバーフローしているかどうかを確認します。上記のプログラムで selected キーワードを使用しない場合、例外はスローされません。プログラムでcheckedキーワードを使用しているため、出力スナップショットに示すような例外がスローされます。プログラム内のcheckedキーワードは、コンパイラのオプション「/checked」を選択することで有効にできます。変数番号が毎回 1 ずつ増加して、メモリ位置に収まらない整数の最大値に達すると、オーバーフロー例外が発生します。オーバーフロー例外は、特別な中間命令を使用することにより、実行時に発生します。
以下に挙げる例は次のとおりです
checked キーワードを使用して例外をスローする方法を示す C# プログラム。
コード:
using System; //a namespace called check is defined namespace check { //a class called space is defined public class space { //main method is called public static void Main() { // Using checked keyword to check if the value is over flowing checked { int twenty = 20; int j = 2147483647 + twenty; Console.WriteLine(j); } } } }
出力:
上記のプログラムでは、checkという名前空間が定義されています。次に、space というクラスが定義されます。次に、main メソッドが呼び出されます。次に、checked キーワードを使用して、値 20 を変数 20 に代入し、それを整数の最大値に加算することで、値がオーバーフローしているかどうかをチェックし、例外がスローされるようにしました。上記のプログラムで selected キーワードを使用しない場合、例外はスローされません。プログラムでcheckedキーワードを使用しているため、出力スナップショットに示すような例外がスローされます。プログラム内のcheckedキーワードは、コンパイラのオプション「/checked」を選択することで有効にできます。変数 20 の値がメモリ位置に収まらない整数の最大値に加算されると、オーバーフロー例外が発生します。オーバーフロー例外は、特別な中間命令を使用することにより、実行時に発生します。
checked キーワードを使用して例外をスローする方法を示す C# プログラム。
コード:
using System; //a class called check is defined public class Check { //the maximum value of integer is assigned to a variable static int maxInt = 2147483647; //main method is called public static void Main() { Console.WriteLine(CheckMethod()); } static int CheckMethod() { int y = 0; try { y = checked (maxInt + 1); } catch (System.OverflowException e) { Console.WriteLine("An overflow exception is raised because of maximum integer value " + e.ToString()); } return y; } }
出力:
上記のプログラムでは、Checkというクラスが定義されています。次に、整数の最大値が変数 maxInt に割り当てられます。次に、main メソッドが呼び出されます。次に、整数の最大値に 1 を加算するためにチェックされたキーワードの使用法で構成される try-catch ブロックを使用した check メソッド関数を呼び出します。catch ブロックは、表示する例外ステートメントで構成されます。上記のプログラムで selected キーワードを使用しない場合、例外はスローされません。プログラムでcheckedキーワードを使用しているため、出力スナップショットに示すような例外がスローされます。プログラム内のcheckedキーワードは、コンパイラのオプション「/checked」を選択することで有効にできます。変数 20 の値がメモリ位置に収まらない整数の最大値に加算されると、オーバーフロー例外が発生します。オーバーフロー例外は、特別な中間命令を使用することにより、実行時に発生します。
このチュートリアルでは、定義を通じて C# の Checked キーワードの概念、C# での Checked キーワードの構文、例とその出力を通じて C# での Checked キーワードの仕組みを理解します。
以上がC# チェック済みの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。