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以内的数字!");    //输出错误信息}}}
}

三、生成:

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ModelScope】从入门到进阶

计算机视觉任务 任务(Task)中文任务(Task)英文任务说明单标签图像分类image-classification对图像中的不同特征根据类别进行区分通用图像分割image-segmentation识别图像主体与图像背景进行分离文字检测ocr-detection将图像中的文…

03-微服务-Ribbon负载均衡

Ribbon负载均衡 1.1.负载均衡原理 SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的。 那么我们发出的请求明明是http://userservice/user/1,怎么变成了http://localhost:8081的呢? 1.2.源码跟踪 为什么我们只输入…

汉诺塔问题(递归超详细)C++,leetcode

文章目录 前言一、题目分析二、算法原理1.为什么要用递归2.如何编写代码 三、代码实现总结 前言 在本文章中,我们将要详细介绍一下汉诺塔问题,本题目我们采用递归的方式解决相关的内容 一、题目分析 题目要求详解:   🌟 有三个…

css原子化的框架Tailwindcss的使用教程(原始html和vue项目的安装与配置)

安装教程 中文官网教程 原始的HTML里面使用 新建文件夹npm init -y 初始化项目 安装相关依赖 npm install -D tailwindcss postcss-cli autoprefixer初始化两个文件 npx tailwindcss init -p根目录下新建src/style.css tailwind base; tailwind components; tailwind ut…

【python入门】day12:bug及其处理思路

bug的常见类型 粗心 / 没有好习惯 思路不清 lst[{rating:[9.7,2062397],id:1292052,type:[犯罪,剧情],title:肖申克的救赎,actors:[蒂姆罗宾斯,摩根弗里曼]},{rating:[9.6,1528760],id:1291546,type:[剧情,爱情,同性],title:霸王别姬,actors:[张国荣 ,张丰毅 , 巩俐 ,葛优]},{r…

卷麻了,00后测试用例写的比我还好,简直无地自容...........

经常看到无论是刚入职场的新人,还是工作了一段时间的老人,都会对编写测试用例感到困扰?例如: 如何编写测试用例? 作为一个测试新人,刚开始接触测试,对于怎么写测试用例很是头疼,无法…

linux性能优化

文章目录 性能优化图CPU进程和cpu原理性能指标 性能优化图 CPU 进程和cpu原理 进程与线程: 进程是程序的执行实例,有自己的地址空间和系统资源。线程是进程内的执行单元,共享进程的资源。在多核系统中,使用多线程可以更好地利用多…

Web 自动化测试过程中会遇到哪些问题?

作者:木可 链接:https://www.zhihu.com/question/636965892/answer/3341410674 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 Web自动化是指使用测试脚本来自动执行网页上的任务。这包括填…

mybatis快速批量插入工具类

代码示例: package com.ly.cloud.util; import java.util.List;import javax.annotation.PostConstruct; import javax.annotation.Resource;import com.google.common.collect.Lists; import org.apache.ibatis.session.ExecutorType; import org.apache.ibatis.s…

Linux Debian12安装和使用ImageMagick图像处理工具 常见图片png、jpg格式转webp格式

一、ImageMagick简介 ImageMagick是一套功能强大、稳定而且免费的工具集和开发包。可以用来读、写和图像格式转换,可以处理超过100种图像格式,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式。对图片的操作,即可以通过命令行进行&am…

派可数据BI 助力生产企业数字化质量管理,全面提升产品品质

在制造业中,出了质量问题,生产和质检部的同事都先抱怨。大家觉得质量问题是品控部门的问题,生产质量有瑕疵,检验人员就要负责。而检验人员又觉得,品质是生产出来的,而不是检验出来的,只有在生产…

服务器为什么大多用 Linux?

服务器为什么大多用 Linux? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「Linux的资料从专业入门到高级教程工具包」,点个关注,全部无偿共享给大家!&#…

1.3 金融数据可视化

跳转到根目录:知行合一:投资篇 已完成: 1.1 编程基础   1.1.1 投资-编程基础-numpy   1.1.2 投资-编程基础-pandas 1.2 金融数据处理 1.3 金融数据可视化 文章目录 1. 金融数据可视化1.1. matplotlib1.1.1. 沪深300走势图1.1.2. 日线均线…

计算机网络-动态路由

网络层协议:ip,ospf,rip,icmp共同组成网络层体系 ospf用于自治系统内部。 一个路由器或者网关需要能够支持多个不同的路由协议,以适应不同的网络环境。特别是在连接不同自治系统的边缘路由器或边界网关的情况下&#…

Qt之自定义分页(翻页)控件

当数据量较大时,分页显示是个不错的选择。这里用百家姓来演示分页效果,包括首页、上一页、下一页、尾页和跳转。 一.效果 每页15个姓氏。 二.实现 QHPageWidget.h #ifndef QHPAGEWIDGET_H #define QHPAGEWIDGET_H#include <QWidget> #include <QStandardItemMod…

Docker安装Elasticsearch,kibana,ik分词器

安装elasticsearch 下载elasticsearch&#xff0c;查看版本&#xff1a;Elasticsearch Guide [8.11] | Elastic docker pull elasticsearch:7.17.16 查看镜像是否下载成功 docker images 创建网络&#xff0c;因为需要部署kibana容器&#xff0c;要让es和kibana容器互联 …

Linuk安装Prometheus+grafana监控

Linuk安装Prometheusgrafana监控 文章目录 Linuk安装Prometheusgrafana监控服务器环境配置1.prometheus监控框架工具介绍2.Prometheus 源码安装和启动配置2.1 下载2.2安装2.3默认prometheus.yml 配置解释2.4直接启动服务2.5 访问http://localhost:90902.6将Prometheus配置为系统…

webRTC实时通信demo

参考文档&#xff1a; https://www.jianshu.com/p/f439ce5cc0be https://www.w3cschool.cn/socket demo流程示意图&#xff08;用户A向用户B推送视频&#xff09;&#xff1a; #mermaid-svg-0KZaDQ5DBl28zjmZ {font-family:"trebuchet ms",verdana,arial,sans-seri…

SpringBoot从配置文件中获取属性的方法

方式一&#xff1a;Value 基本类型属性注入&#xff0c;直接在字段上添加Value("\${xxx.xxx}")即可&#xff0e;注意这里用的是$&#xff0c;而不是&#xff03;&#xff0c;Value注入的属性&#xff0c;一般其他属性没有关联关系。 配置文件 user:name: Manaphya…

Docker介绍、常用命令、项目部署

什么是Docker 简单说&#xff1a;Docker就是一个虚拟机&#xff0c;专业说&#xff1a;它是一个开源的容器平台。它和我们常用的VMware有很多相似的地方。 名词解释 镜像/images 由本体打包出来的文件。并不是文件本身&#xff0c;但是具有该文件的功能。举个不太贴切的例子&…