本文概述
- C#检查
- C#已检查示例, 未使用已检查
- C#未选中
C#检查check关键字用于在编译时显式检查溢出和整数类型值的转换。
首先让我们看一个不使用选中关键字的示例。
C#已检查示例,未使用已检查
using System;
namespace CSharpProgram
{
class Program
{
static void Main(string[] args)
{
int val = int.MaxValue;
Console.WriteLine(val + 2);
}
}
}
输出:
-2147483647
可以看到,以上程序产生了错误的结果,并且不会引发任何溢出异常。
C#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关键字忽略整数类型算术异常。它不会显式检查并产生可能被截断或错误的结果。
例
using System;
namespace CSharpProgram
{
class Program
{
static void Main(string[] args)
{
unchecked
{
int val = int.MaxValue;
Console.WriteLine(val + 2);
}
}
}
}
【C#已检查和未检查】输出:
-2147483647