C#的checked关键字判断是否溢出

目录

一、定义 

二、示例:

三、生成:


一、定义 

        使用checked关键字处理溢出。

        在进行数学运算时,由于变量类型不同,数值的值域也有所不同。如果变量中的数值超出了变量的值域,则会出现溢出情况,出现溢出时变量中的数值将不准确。怎样有效地防止溢出呢?下面结合实例演示怎样使用checked关键字检查是否出现溢出。

        例如,数值类型为byte,byte类型的值域为0~255,所以如果byte类型变量的值高于255或者小于0都会出现溢出。

二、示例:

// 使用checked关键字判断是否有溢出
namespace _022
{
    public partial class Form1 : Form
    {
        private Label? label1;
        private Label? label2;
        private Button? button1;
        private TextBox? textBox1;
        private TextBox? textBox2;
        private TextBox? textBox3;
        
        public Form1()
        {
            InitializeComponent();
            Load += Form1_Load;
        }
        private void Form1_Load(object? sender, EventArgs e)
        {
            // 
            // label1
            // 
            label1 = new Label
            {
                AutoSize = true,
                Location = new Point(65, 18),
                Name = "label1",
                Size = new Size(43, 17),
                TabIndex = 0,
                Text = " + "
            };
            // 
            // label2
            // 
            label2 = new Label
            {
                AutoSize = true,
                Location = new Point(150, 18),
                Name = "label2",
                Size = new Size(43, 17),
                TabIndex = 7,
                Text = " = "
            };
            // 
            // button1
            // 
            button1 = new Button
            {
                Location = new Point(247, 15),
                Name = "button1",
                Size = new Size(75, 23),
                TabIndex = 3,
                Text = "计算",
                UseVisualStyleBackColor = true
            };
            button1.Click += Button1_Click;
            // 
            // textBox1
            // 
            textBox1 = new TextBox
            {
                Location = new Point(12, 15),
                Name = "textBox1",
                Size = new Size(50, 23),
                TabIndex = 4,
                Text = "100"
            };
            // 
            // textBox2
            // 
            textBox2 = new TextBox
            {
                Location = new Point(99, 15),
                Name = "textBox2",
                Size = new Size(50, 23),
                TabIndex = 5,
                Text = "200"
            };
            // 
            // textBox3
            // 
            textBox3 = new TextBox
            {
                Location = new Point(182, 15),
                Name = "textBox3",
                Size = new Size(50, 23),
                TabIndex = 6
            };
            // 
            // Form1
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(334, 91);
            Controls.Add(label2);
            Controls.Add(textBox3);
            Controls.Add(textBox2);
            Controls.Add(textBox1);
            Controls.Add(button1);
            Controls.Add(label1);
            Name = "Form1";
            StartPosition = FormStartPosition.CenterScreen;
            Text = "使用checked关键字处理溢出";           
        }

        private void Button1_Click(object? sender, EventArgs e)
        {
            if (byte.TryParse(                             //对两个byte类型变量赋值
                textBox1!.Text, out byte Add_One)
                && byte.TryParse(textBox2!.Text, out byte Add_Two))
            {
                try
                {
                    checked { Add_One += Add_Two; }        //使用checke关键字判断是否有溢出
                    textBox3!.Text = Add_One.ToString();   //输出相加后的结果
                }
                catch (OverflowException ex)
                {
                    MessageBox.Show(ex.Message, "出错!"); //输出异常信息
                }
            }
            else
            {
                MessageBox.Show("请输入255以内的数字!");    //输出错误信息
            }
        }
    }
}

三、生成:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/280370.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

自然语言处理3——玩转文本分类 - Python NLP高级应用

目录 写在开头1. 文本分类的背后原理和应用场景1.1 文本分类的原理1.2 文本分类的应用场景 2. 使用机器学习模型进行文本分类(朴素贝叶斯、支持向量机等)2.1 朴素贝叶斯2.1.1 基本原理2.1.2 数学公式2.1.3 一般步骤2.1.4 简单python代码实现 2.2 支持向量…

【惊喜揭秘】xilinx 7系列FPGA时钟区域内部结构大揭秘,让你轻松掌握!

本文对xilinx 7系列FPGA的时钟路由资源进行讲解,内容是对ug472手册的解读和总结,需要该手册的可以直接在xilinx官网获取,或者在公众号回复“xilinx手册”即可获取。 1、概括 7系列器件根据芯片大小不同,会有8至24个时钟区域&…

在Pyqt5的QtWidgets.QGraphicsView上绑定matplotlib.figure实现绘图

matplotlib的基础类figure相当于一个View窗口类(实际上,每一个figure是由更底层canvas来控制的,大概有点类似CAD的layers层的概念),是一个可绘制显示图形的View区域,也称画布(figure&#xff09…

OSG绘制视锥体(升级版)

OSG绘制视锥体&#xff0c;这一篇增加设置相机参数接口&#xff0c;支持通过eye、center、up设置相机参数。 代码如下&#xff1a; #include "stdafx.h" #include <osgViewer/Viewer> #include <osg/ShapeDrawable> #include <osg/Geode> #includ…

阿里开源大模型 Qwen-72B 私有化部署

近期大家都知道阿里推出了自己的开源的大模型千问72B&#xff0c;据说对于中文非常友好&#xff0c;在开源模型里面&#xff0c;可谓是名列前茅。 千问拥有有强大的基础语言模型&#xff0c;已经针对多达 3 万亿个 token 的多语言数据进行了稳定的预训练&#xff0c;覆盖领域、…

最新Redis7哨兵模式(保姆级教学)

一定一定要把云服务器的防火墙打开一定要&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;否则不成功&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&…

C++继承与派生——(7)类型兼容原则

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 站在巨人的肩上&#xff0c;是为了超过…

lv13 内核模块参数和依赖

1 模块传参 1.1 模块参数设置 将指定的全局变量设置成模块参数 module_param(name,type,perm);//将指定的全局变量设置成模块参数 /* name:全局变量名 type&#xff1a;使用符号 实际类型 传参方式bool bool insmod xxx.ko 变量名0 …

CorelDRAW 2024最新版本功能介绍含注册机序列号

始于1989年并不断推陈出新,致力为设计工作者提供更高效的设计工具&#xff01;CorelDRAW滋养并见证了一代设计师的成长&#xff01;在最短的时间内交付作品&#xff0c;CorelDRAW的智能高效会让你一见钟情&#xff01;CorelDRAW 全称“CorelDRAW Graphics Suite“&#xff0c;也…

云原生|kubernetes|kubernetes资源备份和集群迁移神器velero的部署和使用

前言&#xff1a; kubernetes集群需要灾备吗&#xff1f;kubernetes需要迁移吗&#xff1f; 答案肯定是需要的 那么&#xff0c;如何做kubernetes灾备和迁移呢&#xff1f;当然了&#xff0c;有很多的方法&#xff0c;例如&#xff0c;自己编写shell脚本&#xff0c;或者使用…

【科研】[3.番外篇] 常见基础科研词汇的介绍!非常基础的一期,大家选择观看哟~

文章目录 我的总结&#xff1a; 我的总结&#xff1a; 轻松一刻 视频来源&#xff1a;https://www.bilibili.com/video/BV1ca4y1k7AK 本期是一期插播视频&#xff0c;内容非常基础&#xff0c;面向超级新手的词汇讲解&#xff1a; Baseline: 基线&#xff0c;文章中用于比较…

io流——转换流

1 为什么需要转换流 为啥 乱码的原理 怎么解决&#xff1f; 1 让两边编码一样 2 使用转换流 2 转换流

大数定律中心极限定理

1.切比雪夫不等式 切比雪夫不等式可以对随机变量偏离期望值的概率做出估计&#xff0c;这是大数定律的推理基础。以下介绍一个对切比雪夫不等式的直观证明。 1.1 示性函数 对于随机事件A&#xff0c;我们引入一个示性函数 I A { 1 , A发生 0 , A不发生 I_A\begin{cases} 1&…

西门子PLC通过PROFINET协议与多功能电表通讯

西门子PLC通过PROFINET协议与多功能电表通讯 项目要求 西门子S71200PLC需要通过PROFINET协议和多功能电表通讯&#xff0c;读取线电压、相电压、线电流、相电流、有功功率、无功功率等参数。 项目实施 采用网关NET90-PN-MBT&#xff08;以下简称“网关”&#xff09;&#…

小米汽车 SU7 技术发布会-智能驾驶猜想,真的“吊打”特斯拉?

核心主题 本人AI数据工程师&#xff0c;看完小米汽车 SU7 技术发布会&#xff0c;主谈智能驾驶猜想。 小米汽车披露&#xff1a;智能驾驶要2024年跻身第一梯队 发布会前沿致敬经典&#xff0c;挺好的毕竟礼多人不怪。 见面道辛苦&#xff0c;必定是江湖。 见面致经典&#…

系列六、Consul

一、Consul 1.1、概述 Consul是一套开源的分布式服务发现和配置管理系统&#xff0c;由HashiCorp公司用Go语言开发。他提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个功能都可以单独使用&#xff0c;也可以一起使用以构建全方位的服务网格&…

基于 Vue3 和 WebSocket 实现的简单网页聊天应用

首先附上项目介绍,后面详细解释技术细节 1. chat-websocket 一个基于Vue3和WebSocket的简易网络聊天室项目&#xff0c;包括服务端和客户端部分。 项目地址 websocket-chat 下面是项目的主要组成部分和功能&#xff1a; 项目结构 chat-websocket/ |-- server/ # WebSocket 服…

解锁大数据世界的钥匙——Hadoop HDFS安装与使用指南

目录 1、前言 2、Hadoop HDFS简介 3、Hadoop HDFS安装与配置 4、Hadoop HDFS使用 5、结语 1、前言 大数据存储与处理是当今数据科学领域中最重要的任务之一。随着互联网的迅速发展和数据量的爆炸性增长&#xff0c;传统的数据存储和处理方式已经无法满足日益增长的需求。…

C++进阶--二叉树进阶(二叉搜索树)

二叉树进阶&#xff08;二叉搜索树&#xff09; 一、二叉搜索树1.1 二叉搜索树的概念 二、二叉搜索树的结构2.1 结点结构2.2 树结构 三、二叉搜索树的操作&#xff08;非递归&#xff09;3.1 二叉搜索树的插入3.2 二叉搜索树的查找3.3 二叉搜索树的中序遍历3.4 二叉搜索树的删除…

软件测试/测试开发丨Selenium如何复用已打开浏览器

步骤说明&#xff1a; 将浏览器启动方式添加到环境变量。便于我们在终端任意位置启动浏览器终端中使用命令行&#xff0c;打开浏览器debug模式代码中创建driver时&#xff0c;添加debugger_address设置 以Chrome浏览器为例&#xff0c;设置步骤如下&#xff1a; 将浏览器启动…