背景

最近在调试C#项目的时候,发现一个比较关于??的特殊用法,当时把我给惊到了,所以特意用这篇短短的笔记来记录一下我的解惑过程;

示例代码:

showsomething(isNameNull ?? errorMes);

上面那个就是??的用法,下面的过程就是我自己解惑的过程,吃一堑长一智!

?的使用

  1. 定义数据类型可为空,目的是用于对int,double,bool等无法直接赋值为null的类型进行null的赋值

      int i ;                 //-->default value is 0
    int? valueOfNull; // --> default value is null
  2. 用于判断对象是否为null,如果对象为null,则不管调用什么都不会抛出异常,直接返回null

         Pen redPen = new Pen();
    redPen.showColor(); Pen nullPen = null;
    nullPen?.showColor(); // 这里将不会引起异常 Pen testNullPen = null;
    testNullPen.showColor(); // 这里将会抛出异常

??的使用

  1. ??用于判断一个变量为null返回一个指定的值

         string name = null;
    
         name = name ?? "Alex";   // --> if name is null, return Alex ; so name = "Alex"

总结

一开始还以为???会有很多的花样呢,原来用起来还是比较简单的,所以通过这短暂的学习,自己还是很快掌握了这些小知识。

最新文章

  1. Linux 设备驱动程序 proc
  2. IOS 本地通知推送消息
  3. JavaWeb 命名规则
  4. POJ3783Balls[DP 最坏情况最优解]
  5. NYOJ题目893十字架
  6. pycharm下载 -professional
  7. Linux改变文件或目录的访问权限命令
  8. Selenium 使用方法小结
  9. (转)Tomcat 7 访问 Manager 和 Host Manager
  10. C#线程池ThreadPool的理解
  11. ExtJs自学教程(1):从一切API开始
  12. javascript window.confirm确认 取消对话框实现代码小结
  13. 基于 Koa平台Node.js开发的KoaHub.js连接打印机的代码
  14. 基于Intranet的零件库管理信息系统设计--part02
  15. Java中的基本数据类型和基本数据类型之间的转换
  16. FPGA学习笔记(一)——初识FPGA
  17. Python 正则表达式 flags 参数
  18. 一个python小爬虫
  19. Sublime 汉化、快捷键打开浏览器
  20. Transform Model

热门文章

  1. DataX支持mysql8.X
  2. 【汇编】2.第一个程序:hello world
  3. 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>=
  4. 【转】面向GC的Java编程
  5. 简单易学的Linux 命令整理
  6. ReactNative: 将自定义的ReactNative组件制作成第三方库的详细流程(制作-->发布)
  7. 《C# 爬虫 破境之道》:第一境 爬虫原理 — 第六节:第一境尾声
  8. Excel-条件格式
  9. 01.flask pycharm开启debug模式
  10. python专题文件操作