C# 已检查

王林
王林原创
2024-09-03 15:16:511072浏览

要显式检查算术中整型操作和转换的溢出,必须为算术中整型操作和转换启用溢出检查,这可以通过使用 C# 中名为 checked 关键字的关键字和使用Checked 来实现。 C# 中表达式的关键字,在运行时检查常量表达式是否溢出,如果存在溢出,编译器将引发溢出异常,而尽管使用了非常量表达式,但在运行时不会检查非常量表达式是否溢出。检查关键字和溢出,在这种情况下不会引发异常。

 checked 关键字 C# 语法如下:

checked(Expression)

C# 中检查关键字的工作

  • 每当一个数字溢出时,该数字的值就会失效。因此,不会抛出任何异常。
  • 对于当数字溢出时抛出的异常,我们使用关键字checked。
  • 每当检查关键字用于值溢出的表达式时,都会引发异常。
  • 由于值溢出会引发异常,因此可以通过捕获异常来避免错误。因此,生成的程序质量将会很好。
  • 考虑以下程序来演示检查关键字在 C# 程序中的使用:

代码:

//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关键字通过将值增加到最大值来检查值是否溢出。如果我们在上面的程序中不使用checked关键字,则不会抛出异常。因为我们在程序中使用了checked关键字,所以会抛出输出快照中所示的异常。程序中的checked关键字可以通过选择编译器中的选项“/checked”来激活。当变量号每次加一达到内存位置无法容纳的整数最大值时,就会引发溢出异常。使用特殊的中间指令在运行时引发溢出异常。

已检查的 C# 示例

以下是下面提到的示例

示例#1

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,然后将其添加到整数的最大值,以便抛出异常。如果我们在上面的程序中不使用checked关键字,则不会抛出异常。因为我们在程序中使用了checked关键字,所以会抛出输出快照中所示的异常。程序中的checked关键字可以通过选择编译器中的选项“/checked”来激活。当变量二十的值与内存位置无法容纳的整数的最大值相加时,会引发溢出异常。使用特殊的中间指令在运行时引发溢出异常。

示例#2

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方法。然后我们调用 check 方法函数,在该函数中我们使用了 try-catch 块,该块由 checked 关键字组成,用于将整数的最大值加一,catch 块由我们想要显示的异常语句组成。如果我们在上面的程序中不使用checked关键字,则不会抛出异常。因为我们在程序中使用了checked关键字,所以会抛出输出快照中所示的异常。程序中的checked关键字可以通过选择编译器中的选项“/checked”来激活。当变量二十的值与内存位置无法容纳的整数的最大值相加时,会引发溢出异常。使用特殊的中间指令在运行时引发溢出异常。

结论

在本教程中,我们通过定义了解 C# 中 checked 关键字的概念、C# 中检查关键字的语法、通过示例了解 C# 中检查关键字的工作原理及其输出。

以上是C# 已检查的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
上一篇:C# Buffer下一篇:C# String PadLeft