C# チェック済み

王林
王林オリジナル
2024-09-03 15:16:511072ブラウズ

算術における整数型の演算と変換のオーバーフローを明示的にチェックするには、算術における整数型の演算と変換に対してオーバーフロー チェックを有効にする必要があります。これは、C# で selected キーワードと呼ばれるキーワードを使用し、checked を使用することで可能になります。 C# の式のキーワードを使用すると、定数式は実行時にオーバーフローがチェックされ、オーバーフローが発生した場合はコンパイラによってオーバーフロー例外が発生しますが、非定数の式は実行時にオーバーフローがチェックされません。チェックされたキーワードとオーバーフロー、そのような場合には例外は発生しません。

チェックされたキーワード C# の構文は次のとおりです:

checked(Expression)

C# でのチェックされたキーワードの動作

  • 数値がオーバーフローすると、その数値は無効になります。結果として、例外はスローされません。
  • 数値がオーバーフローするたびに例外がスローされるようにするには、キーワード selected を使用します。
  • 値がオーバーフローしている式にチェックされたキーワードが使用されると、例外が発生します。
  • 値がオーバーフローした場合には例外が発生するため、例外をキャッチすることでエラーを回避できます。その結果、得られるプログラムの品質は向上します。
  • C# プログラムでの selected キーワードの使用を示す以下のプログラムを考えてみましょう:

コード:

//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++;
}
}
}
}
}

出力:

C# チェック済み

上記のプログラムでは、checkという名前空間が定義されています。次に、space というクラスが定義されます。次に、main メソッドが呼び出されます。次に、checked キーワードを使用して、値を最大値まで増やして、値がオーバーフローしているかどうかを確認します。上記のプログラムで selected キーワードを使用しない場合、例外はスローされません。プログラムでcheckedキーワードを使用しているため、出力スナップショットに示すような例外がスローされます。プログラム内のcheckedキーワードは、コンパイラのオプション「/checked」を選択することで有効にできます。変数番号が毎回 1 ずつ増加して、メモリ位置に収まらない整数の最大値に達すると、オーバーフロー例外が発生します。オーバーフロー例外は、特別な中間命令を使用することにより、実行時に発生します。

チェックされた C# の例

以下に挙げる例は次のとおりです

例 #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);
}
}
}
}

出力:

C# チェック済み

上記のプログラムでは、checkという名前空間が定義されています。次に、space というクラスが定義されます。次に、main メソッドが呼び出されます。次に、checked キーワードを使用して、値 20 を変数 20 に代入し、それを整数の最大値に加算することで、値がオーバーフローしているかどうかをチェックし、例外がスローされるようにしました。上記のプログラムで selected キーワードを使用しない場合、例外はスローされません。プログラムでcheckedキーワードを使用しているため、出力スナップショットに示すような例外がスローされます。プログラム内のcheckedキーワードは、コンパイラのオプション「/checked」を選択することで有効にできます。変数 20 の値がメモリ位置に収まらない整数の最大値に加算されると、オーバーフロー例外が発生します。オーバーフロー例外は、特別な中間命令を使用することにより、実行時に発生します。

例 #2

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;
}
}

出力:

C# チェック済み

上記のプログラムでは、Checkというクラスが定義されています。次に、整数の最大値が変数 maxInt に割り当てられます。次に、main メソッドが呼び出されます。次に、整数の最大値に 1 を加算するためにチェックされたキーワードの使用法で構成される try-catch ブロックを使用した check メソッド関数を呼び出します。catch ブロックは、表示する例外ステートメントで構成されます。上記のプログラムで selected キーワードを使用しない場合、例外はスローされません。プログラムでcheckedキーワードを使用しているため、出力スナップショットに示すような例外がスローされます。プログラム内のcheckedキーワードは、コンパイラのオプション「/checked」を選択することで有効にできます。変数 20 の値がメモリ位置に収まらない整数の最大値に加算されると、オーバーフロー例外が発生します。オーバーフロー例外は、特別な中間命令を使用することにより、実行時に発生します。

結論

このチュートリアルでは、定義を通じて C# の Checked キーワードの概念、C# での Checked キーワードの構文、例とその出力を通じて C# での Checked キーワードの仕組みを理解します。

以上がC# チェック済みの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:C# バッファ次の記事:C# バッファ