C# 选中和未选中
C# Checked 和 Unchecked
C# 提供了 checked 和 unchecked 关键字来处理整数类型异常。 Checked 和 unchecked 关键字分别指定了选中的上下文和未选中的上下文。在已检查的上下文中,算术溢出会引发异常,而在未检查的上下文中,会忽略算术溢出并截断结果。
C# Checked
checked 关键字用于在编译时显式检查溢出和整数类型值的转换。
我们先来看看一个不使用checked关键字的例子。
不使用checked的C#Checked例子
using System;
namespace CSharpProgram
{
class Program
{
static void Main(string[] args)
{
int val = int.MaxValue;
Console.WriteLine(val + 2);
}
}
}
输出:
看,上面的程序产生了错误的结果,并没有抛出任何溢出异常。
C# Checked Example using checked
此程序抛出异常并停止程序执行。
using System;
namespace CSharpProgram
{
class Program
{
static void Main(string[] args)
{
checked
{
int val = int.MaxValue;
Console.WriteLine(val + 2);
}
}
}
}
输出:
Unhandled Exception: System.OverflowException: Arithmetic operation resulted in an overflow.
C# Unchecked
Unchecked 关键字忽略整数类型算术异常。它没有明确检查并产生可能被截断或错误的结果。
示例
using System;
namespace CSharpProgram
{
class Program
{
static void Main(string[] args)
{
unchecked
{
int val = int.MaxValue;
Console.WriteLine(val + 2);
}
}
}
}
输出: