要显式检查算术中整型操作和转换的溢出,必须为算术中整型操作和转换启用溢出检查,这可以通过使用 C# 中名为 checked 关键字的关键字和使用Checked 来实现。 C# 中表达式的关键字,在运行时检查常量表达式是否溢出,如果存在溢出,编译器将引发溢出异常,而尽管使用了非常量表达式,但在运行时不会检查非常量表达式是否溢出。检查关键字和溢出,在这种情况下不会引发异常。
checked 关键字 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关键字通过将值增加到最大值来检查值是否溢出。如果我们在上面的程序中不使用checked关键字,则不会抛出异常。因为我们在程序中使用了checked关键字,所以会抛出输出快照中所示的异常。程序中的checked关键字可以通过选择编译器中的选项“/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,然后将其添加到整数的最大值,以便抛出异常。如果我们在上面的程序中不使用checked关键字,则不会抛出异常。因为我们在程序中使用了checked关键字,所以会抛出输出快照中所示的异常。程序中的checked关键字可以通过选择编译器中的选项“/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方法。然后我们调用 check 方法函数,在该函数中我们使用了 try-catch 块,该块由 checked 关键字组成,用于将整数的最大值加一,catch 块由我们想要显示的异常语句组成。如果我们在上面的程序中不使用checked关键字,则不会抛出异常。因为我们在程序中使用了checked关键字,所以会抛出输出快照中所示的异常。程序中的checked关键字可以通过选择编译器中的选项“/checked”来激活。当变量二十的值与内存位置无法容纳的整数的最大值相加时,会引发溢出异常。使用特殊的中间指令在运行时引发溢出异常。
在本教程中,我们通过定义了解 C# 中 checked 关键字的概念、C# 中检查关键字的语法、通过示例了解 C# 中检查关键字的工作原理及其输出。
以上是C# 已检查的详细内容。更多信息请关注PHP中文网其他相关文章!