C# ?和??使用讲解
2024-08-31 17:53:33
原文:C# ?和??使用讲解
场景1:使用?定义可空类型
众所周知,C#中的值类型是不可以为null的,如果必须为null,则需要将变量定义为可空类型,如下所示:
int? age = null;
场景2:使用?检查null值
一般我们写代码时,为了避免代码出现空异常System.NullReferenceException,都会写很多的判断语句
Address address = null;
if (address != null)
{
Console.WriteLine(address.PostCode);
} Console.ReadLine();
在C#的新语法中,我们可以通过?来检查null值,这样可以减少很多不必要的判断
Address address = null;
var postCode = address?.PostCode;
Console.WriteLine(postCode); Console.ReadLine();
场景3:使用??设置默认值
在写代码过程中,经常会碰到当变量为null值设置默认值的情况,原来的写法可能是这样的:
int? age = null;
if (!age.HasValue)
{
age = ;
} Console.WriteLine(age); // 输出18 Console.ReadLine();
在C#的新语法中,可以通过??来设置默认值,如果变量值为null,取??右边的值,如果不为null,取变量的值
int? age = null; Console.WriteLine(age ?? ); // 输出18 age = ; Console.WriteLine(age ?? ); // 输出20 Console.ReadLine();
最新文章
- 【十大经典数据挖掘算法】EM
- 解决C# WinForm Graphics绘制闪烁问题
- Python网络数据采集系列-------概述
- Maven配置Nexus私服
- h5视频上传之前端视频压缩研究
- Django中提示TemplateDoesNotExist?
- 安卓微POS-PDA手持终端,支持离线在线联网销售开单;移动开单 盘点 功能
- Validate Binary Search Tree [LeetCode]
- jQuery/CSS3大屏下拉菜单 自定义子菜单内容
- CH BR8(小学生在上课-逆元和互质数一一对应关系)
- [转]关于Icon,Image,ImageIcon的简单的对比参考
- ECharts 是一款开源
- 在centos7下安装mysql5.7
- 如何在windows的DOS窗口中正常显示中文(UTF-8字符)
- C语言的指针变量
- Apache服务器学习笔记
- KoaHub.js可借助 Babel 编译稳定运行在 Node.js 环境上
- Linux中的查找命令find
- hdu2473
- MySQL 日期笔记
热门文章
- 8、hzk16的介绍以及简单的使用方法
- [Angular2 Form] Reactive Form, show error message for one field
- [Angular2 Router] Resolving route data in Angular 2
- oracle数据库未打开解决的方法
- 我的嵌入式Qt开发第一课——基于BBB和hmc5843三轴电子罗盘
- php实现不用加减乘除号做加法(1、善于寻找资源:去搜为什么位运算可以实现加法,里面讲的肯定要详细一万倍)
- PHP+Aax实现异步验证
- 【t057】任务分配
- RAC sysdate
- BZOJ 3932 - 主席树