C#从入门到精通(28)—C#检查数据溢出

本文介绍了C#中如何使用checked和unchecked关键字来控制整数溢出检查,并演示了如何在特定代码块中启用或禁用这些检查。
该文章已生成可运行项目,

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家人工智能学习网站

前言:

大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!本文介绍如何在代码中检查数据有没有溢出,所谓溢出就是超出了该类型所能表示的最大值,如果不加代码溢出检查,虽然程序不会报错但是程序运行的结果会超出你的预料。

1、指定代码块使用checked检查数据溢出

1.1

  checked
            {
                int aa = int.MaxValue;
                int bb = aa+ 1;
            }
可以看到代码会提示System.OverflowException:“算术运算导致溢出,因为变量bb这个int值超出了int类型所能表示的最大值。

1.2

 private void TestDataOverflow()
        {
            int a = int.MaxValue ;
            int b = a + 1;
        }
 checked
            {
                TestDataOverflow();
            }
不会看到代码提示算术运算溢出,因为溢出的地方又属于另一个代码块了,因为代码块就是使用{}括起来的部分,对于{}里面的{}则属于另一个代码块了。

2、对程序中所有地方都进行检查数据溢出

鼠标右键项目,然后选择属性-》生成-》高级-》检查算术溢出/下溢 勾选即可。
在这里插入图片描述

在这里插入图片描述

3、强制不对代码块进行数据溢出检查

使用unchecked强制不对代码块进行数据溢出检查

 unchecked
            {
                int aa = int.MaxValue;
                int bb = aa + 1;
            }

这样,即使在编译器中设置了要进行溢出检查,但是由于 unchecked指定了不对代码块中的内容进行检查,所以也不会报错。

作者介绍

马工2017年硕士毕业,一直从事上位机软件开发工作,在我工作的第四年年薪突破了40万+,为了帮助跟我一样从底层出身的上位机软件工程师早日达到高级工程师的水平,早日找到30万+的工作,我根据多年项目经验,总结出了一系列可直接用于项目的C#上位机实战教程推荐给大家,目前在CSDN已经超过一千人订阅,如果你不甘贫庸,想像我一样早日拿到高薪,马工强烈推荐你早日学这套教程,雷军曾说这个世界上有99%的问题别人都遇到过,你要做的不是闷头干!而是找这个领域的专家问一下,这是最快速提升自己的方法!

年入30万+C#上位机实战必备教程推荐(点击下方链接即可访问文章)

1、《C#串口通信从入门到精通》
2、《C#与PLC通信从入门到精通 》
3、《C# Modbus通信从入门到精通》
4、《C#Socket通信从入门到精通 》
5、《C# MES通信从入门到精通》
6、《winform控件从入门到精通》

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上位机马工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值