C#中? 和 ??的区别
2024-09-06 17:53:02
背景
最近在调试C#项目的时候,发现一个比较关于
??
的特殊用法,当时把我给惊到了,所以特意用这篇短短的笔记来记录一下我的解惑过程;
示例代码:
showsomething(isNameNull ?? errorMes);
上面那个就是??
的用法,下面的过程就是我自己解惑的过程,吃一堑长一智!
?的使用
定义数据类型可为空,目的是用于对
int
,double
,bool
等无法直接赋值为null
的类型进行null
的赋值int i ; //-->default value is 0
int? valueOfNull; // --> default value is null
用于判断对象是否为
null
,如果对象为null
,则不管调用什么都不会抛出异常,直接返回null
Pen redPen = new Pen();
redPen.showColor(); Pen nullPen = null;
nullPen?.showColor(); // 这里将不会引起异常 Pen testNullPen = null;
testNullPen.showColor(); // 这里将会抛出异常
??的使用
??
用于判断一个变量为null
返回一个指定的值string name = null; name = name ?? "Alex"; // --> if name is null, return Alex ; so name = "Alex"
总结
一开始还以为?
和??
会有很多的花样呢,原来用起来还是比较简单的,所以通过这短暂的学习,自己还是很快掌握了这些小知识。
最新文章
- Linux 设备驱动程序 proc
- IOS 本地通知推送消息
- JavaWeb 命名规则
- POJ3783Balls[DP 最坏情况最优解]
- NYOJ题目893十字架
- pycharm下载 -professional
- Linux改变文件或目录的访问权限命令
- Selenium 使用方法小结
- (转)Tomcat 7 访问 Manager 和 Host Manager
- C#线程池ThreadPool的理解
- ExtJs自学教程(1):从一切API开始
- javascript window.confirm确认 取消对话框实现代码小结
- 基于 Koa平台Node.js开发的KoaHub.js连接打印机的代码
- 基于Intranet的零件库管理信息系统设计--part02
- Java中的基本数据类型和基本数据类型之间的转换
- FPGA学习笔记(一)——初识FPGA
- Python 正则表达式 flags 参数
- 一个python小爬虫
- Sublime 汉化、快捷键打开浏览器
- Transform Model
热门文章
- DataX支持mysql8.X
- 【汇编】2.第一个程序:hello world
- ipaclient 4.5.4 requires jinja2, which is not installed. rtslib-fb 2.1.63 has requirement pyudev>;=0.16.1, but you'll have pyudev 0.15 which is incompatible. ipapython 4.5.4 has requirement dnspython>;=
- 【转】面向GC的Java编程
- 简单易学的Linux 命令整理
- ReactNative: 将自定义的ReactNative组件制作成第三方库的详细流程(制作-->;发布)
- 《C# 爬虫 破境之道》:第一境 爬虫原理 — 第六节:第一境尾声
- Excel-条件格式
- 01.flask pycharm开启debug模式
- python专题文件操作