首页 > 编程语言 >(十六)C#编程基础复习——可空类型

(十六)C#编程基础复习——可空类型

时间:2023-11-14 10:57:58浏览次数:39  
标签:操作数 num7 Console 复习 C# 运算符 可空 类型 null

一、可空类型

在C# 1.X的版本中,一个值类型的变量是不可以被赋值为null(空值)的,否则会产生异常。而在C# 2.0中,新增了一个nullable类型,可以使用nullable类型定义包含null值的数据,例如,你可以在nullable<Int32>(可为空的int32类型)类型的变量中存储-2147483648到2147483647之间的任何只或者null。同样,您可以在nullable<bool>(可为空的bool类型)类型的变量中存储true、false或null。语法如下:

示例代码如下:

            int? num1;
            int? num2 = 123;
            num1 = null;

            double? num3 = new double?();
            double? num4 = 3.1415926;
            bool? boolval = null;

            //输出这些值
            Console.WriteLine("num1={0} \r\n num2={1} \r\n num3={2} \r\n num4={3} \r\n boolval={4}",num1,num2,num3,num4,boolval);
            Console.ReadKey();

运行结果:

二、Null合并运算符(??)

在C#中Null合并运算符用于定义可空类型和引用类型的默认值。如果此运算符的左操作数不为null,那么运算符将返回左操作数,否则返回右操作数。例如表达式a??b中,如果a不为空,那么表达式的值则为a,反之则为b。需要注意的是,Null合并运算符左右两边操作数的类型必须相同,或者右操作数的类型可以隐式的转换为左操作数的类型,否则将编译失败。

示例代码如下:


            int? num5 = null;
            int? num6 = 456;
            int num7;
            num7 = num5 ?? 321;
            Console.WriteLine("num7={0}",num7);
            num7 = num6 ?? 321;
            Console.WriteLine("num7={0}",num7);
            Console.ReadLine();
            Console.ReadKey();

运行结果:

标签:操作数,num7,Console,复习,C#,运算符,可空,类型,null
From: https://www.cnblogs.com/daihaoliulingyi601/p/17831100.html

相关文章

  • mysql数据表 Table is marked as crashed and should be repaired 的解决办法
    问题查询时,报  Tableismarkedascrashedandshouldberepaired 错误错误原因网上查了一下,错误的产生原因,有网友说是频繁查询和更新XXX表造成的索引错误,还有说法是Mysql数据库因某种原因而受到了损坏。如:数据库服务器突发性断电,在数据表提供服务时对表的源文件进行某......
  • CodeWhisperer 使用经验分享
    今天给大家分享一下AmazonCodeWhisperer编程工具(免费哦),使用这个软件后我的编码质量提升不少,给大家分享一下我的经验。希望大家支持哦。AmazonCodeWhisperer是亚⻢逊出品的一款基于机器学习的AI编程助手,可实时提供代码建议。与Cursor和GithubCopilot这类编码工具相似,......
  • CSS 也能实现 if 判断?实现动态高度下的不同样式展现
    最近在群里,有个小伙伴问了这么一道很有趣的问题:CSS能否实现,容器再某个高度下是某种表现,一旦超出某个高度,则额外展示另外一些内容为了简化实际效果,我们看这么一张示意效果图:可以看到,当容器高度没有超过某一个值时,没有箭头图标。反之,箭头图标出现。这个效果在很多场景都会出......
  • 深度剖析GadgetInspector执行逻辑(上)
    GadgetInspector该类是这个项目的主类首先就是配置日志格式这里是使用的log4j进行控制台日志的输出,分别设置了了布局格式/日志级别/激活配置等等操作之后在主类中就是进行GIConfig接口的实现类这里优先获取的是默认的反序列化规则,什么意思呢?我们跟进getConfig方法中......
  • Oracle sql自定义统计月范围
     思路: 1,使用SUBSTR(to_char(INSPECTION_DATE,'yyyy-mm-dd'),-2)取出天数, 2,使用case……when……then……判断取出的天数是否大于等于25号,如果是则将日期设置成下月第一天 如果小于等于24号,则设置成当月第一天 3,使用TRUNC(ADD_MONTHS(INSPECTION_DATE,1),'mm')增......
  • springboot集成nacos
    一、加pom文件<!--Nacos--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><d......
  • ts interface
    在TypeScript中,接口(interface)用于定义对象的结构,可以描述对象的属性、方法等。下面是一个简单的例子,演示如何使用TypeScript接口://定义一个接口表示一个人的信息interfacePerson{firstName:string;lastName:string;age:number;sayHello:()=>void;}//......
  • H3C 交换机命名和端口
       一:H3C交换机命名规则A:产品品牌B:产品系列  S-交换机switch  R-路由器routerC:子产品系列  10以上控制转发新一代核心交换机  9 机箱或汇聚交换机  7机箱式汇聚交换机  5全千兆盒式交换机  3千兆上行百兆下行盒式交换机D:是否路由交换......
  • react| 封装TimeLine组件
    功能支持居中/局左/居右布局可自定义线条颜色默认情况下图标是圆形,可自定义圆形颜色和大小,同时也可以自定义图标支持自定义内容效果constdata=[{"title":"2022-12-0512:03:40","des":"茶陵县实时广播防火宣传"},...]<TimeLineda......
  • [WUSTCTF2020]girlfriend
    下载了一个音频文件,打开来听起来像是在打电话输入号码的声音,猜测DTMF拨号音识别,有个程序可以识别一下dtmf2num.exe,通过链接可以下载http://aluigi.altervista.org/mytoolz/dtmf2num.zipDTMF2NUM0.2byLuigiAuriemmae-mail:[email protected]:aluigi.org-open......