首页 > 编程语言 >C#中的checked和unchecked

C#中的checked和unchecked

时间:2024-02-05 18:22:06浏览次数:26  
标签:checked C# args int Main unchecked

C#中checked和unchecked关键字

checked

在checked代码段中,如果里面执行的是比较危险的代码,则会引发相关异常或者错误,例如:

static void Main(string[] args)
{
    checked
    {
        int n = int.MaxValue;
        Console.WriteLine(n+1);
    }
}
Unhandled exception. System.OverflowException: Arithmetic operation resulted in an overflow.
   at DemoProject.Program.Main(String[] args) in C:\Users\Yihao\Desktop\FZ\DemoProject\DemoProject\Program.cs:line 12

Process finished with exit code -532,462,766.

checked块的代码在运行时发生赋值溢出将引发异常。

unchecked

C#还提支持unchecked块来强制不进行溢出检查,块中溢出的赋值将不会引发异常,例如:

static void Main(string[] args)
{
    unchecked
    {
        int n = int.MaxValue;
        Console.WriteLine(n+1);
    }
}
-2147483648

Process finished with exit code 0.

标签:checked,C#,args,int,Main,unchecked
From: https://www.cnblogs.com/lilyflower/p/18008616

相关文章

  • openWrt使用rclone挂载webDav
    前言觉得路由器(linux)硬盘太小,又不好扩展(x86机器可以插硬盘、但arm机器的硬盘是焊死的无法扩展)。这个时候,我们可以通过davfs或者rclone将外部资源如webDav挂载到本机上用来作为自己的硬盘。安装rclone#新版的rclone依赖fuse3,所系需要安装(尽管rclone的子依赖包含fuse但那是旧版......
  • C#中Thread和Task的区别
    https://blog.csdn.net/happyjava2/article/details/131411791Thread和Task是.NET框架中用于实现多线程编程的两个重要概念。它们的主要区别如下:1、基于不同的.NET框架:Thread是基于Windows操作系统提供的API实现,而Task则是基于.NET框架提供的TPL(TaskParallelL......
  • [BJDCTF2020]ZJCTF,不过如此
    [BJDCTF2020]ZJCTF,不过如此代码审计,在符合if的条件后,我们可以通过include函数包含想要查看的文件因此,首先需要传入两个参数text和file:text参数必须不为空,内容需要为Ihaveadream,file参数的内容则在后面的注释里提示我们为next.php,并且file参数里面不能包含/flag/,否则程序会......
  • 稳定编号系统 - 我的世界OCO指令系列
    最近在搞一些我的世界指令。其中有这么一个指令,需要编号系统,也就是uid。本指令需要引用的模块:玩家进入退出检测意义通常的编号系统中,当玩家进入或退出时,编号会从头重新分配。然而这样会导致编号不是很稳定。比如编号的一个用途是用来传送特定玩家。按照通常的编号分配......
  • C#多线程编程的Task(任务全面解析)
    原文链接:https://www.cnblogs.com/xietianjiao/p/7429742.htmlTask是.NET4.0加入的,跟线程池ThreadPool的功能类似,用Task开启新任务时,会从线程池中调用线程,而Thread每次实例化都会创建一个新的线程。 我们可以说Task是一种基于任务的编程模型。它与thread的主要区别是,它更加方便......
  • docker 启动jar包
    1、编写Dockerfile文件FROMopenjdk:8ENVTZ="Asia/Shanghai"ADDcim-gisportal.jarcim-gisportal.jarADDnohup.outnohup.outENTRYPOINT["nohup","java","-jar","/cim-gisportal.jar",">nohup.out&&quo......
  • Cucumber步骤中传Data Table作为参数
    引用链接:http://cukes.info/step-definitions.htmlDataTablesDataTablesarehandyforspecifyingalargerpieceofdata:Giventhefollowingusersexist:|name|email|phone||Aslak|[email protected]|123||Matt|[email protected]|2......
  • Cesium常用知识点
    构建四元数//地理位置坐标(三维)constposition=Cesium.Cartesian3.fromDegrees(-123.0744619,44.0503706,height);constheading=Cesium.Math.toRadians(135);//航向constpitch=0;//俯仰constroll=0;//横滚角consthpr=newCesium.Headi......
  • 【板子】网络流(Dinic)
    #include<bits/stdc++.h>usingnamespacestd;constintN=205;constintM=205;constintINF=0x3f3f3f3f;intedgeid=2;inthead[N];structedge{intv,w,nxt;}e[M*2];inlinevoidaddedge(intu,intv,intw){e[edgeid].v=v;e[ed......
  • C#之lock
    原文链接:https://blog.csdn.net/u012563853/article/details/124767902lock语法是:privateobjecto=newobject();//创建一个对象publicvoidWork(){lock(o)//锁住这个对象{//做一些必须按照顺序做的事情}}目的是,在多线程中,使用lock后,能......