C# 属性

C# 抽象

C# 字符串

C# 泛型

C# 杂项

C# 新特性

C# Checked and Unchecked 选中和未选中

C# 提供了checked 和unchecked 关键字来处理整型异常。Checked 和 unchecked 关键字分别指定已检查上下文和未检查上下文。在检查的上下文中,算术溢出引发异常,而在未经检查的上下文中,算术溢出被忽略并且结果被截断。

C# 已检查

checked 关键字用于在编译时显式检查整数类型值的溢出和转换。

我们先来看一个不使用checked关键字的例子。

不使用检查的 C# 检查示例

例子 (Example)

using System;  
namespace CSharpProgram  
{  
    class Program  
    {  
        static void Main(string[] args)   
        {  
                int val = int.MaxValue;  
                Console.WriteLine(val + 2);  
        }  
    }  
}

输出:

-2147483647

看,上面的程序产生了错误的结果并且没有抛出任何溢出异常。

使用检查的 C# 检查示例

该程序抛出异常并停止程序执行。

例子 (Example)

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 关键字忽略整数类型算术异常。它不会显式检查并产生可能被截断或错误的结果。

例子 (Example)

using System;  
namespace CSharpProgram  
{  
    class Program  
    {  
        static void Main(string[] args)   
        {  
            unchecked  
            {  
                int val = int.MaxValue;  
                Console.WriteLine(val + 2);  
            }  
        }  
    }  
}

输出:

-2147483647


  • 使用社交账号登录,本站支持
全部评论(0)