static void Main(string[] args){//空合并行运算??/*?? 提供了一种快捷方式,可以在处理可空类型和引用类型时表示null值的可能性,这个运算符放在两个操作数之间,第一个操作数必须是一个可空类型或者引用类型,第二个操作数必须与第一个操作数类型相同,或者可以隐式转换为第一个操作数的类型1、如果第一个操作数不是null,整个表达式就等于第一个操作数的值;2、如果第一个操作数是null, 整个表达式就等于第二个操作数的值*/int? a = null;int b;b = a ?? 10;a = 3;Console.WriteLine(b); // 10b = a ?? 10;Console.WriteLine(b); //3//空值传播运算符 object?.method;/** 生产环境中代码会检查验证变量空值条件,访问变量时需要检查判断是否为null,否则会抛出NullReferenceException, 但是有时很容易忘记这样的检查,可以利用空值传播的特性来简化代码*/int? d = 2;Console.WriteLine(d?.ToString().GetType().Name); // Stringd = null;Console.WriteLine(d?.ToString().GetType().Name); // null//当空值传播类型访问int类型的属性时,不能将结果直接分配给int,因为结果可能为null,可以将结果分配为可空的int?//当然我们也可以结合空合并行运算符的特性??来实现
Person p = new Person();int e = p?.Age ?? 666;Console.WriteLine(e); //123
p = null;e = p?.Age ?? 666;Console.WriteLine(e); //666//当然也可以将这种特性用于数组的可空判断int[] arr = null;Console.WriteLine(arr?[0]); //null
arr = new[] {1, 2, 3};Console.WriteLine(arr?[0]); //1Console.ReadKey();

转载于:https://www.cnblogs.com/alplf123/p/10033550.html

c# 运算符 ? ??相关推荐

  1. python 位运算与等号_Python 运算符

    和大多数语言一样,Python也有很多运算符,并且运算符跟其他语言的运算符大同小异接下来一一介绍: 算术运算符: 运算符描述实例 +加 - 两个对象相加a+b的输出结果是30 -减 - 得到复数或者一 ...

  2. 第一个python程序:定义,列表,元组,集合,求并集交集,键和值,运算符,缩进

    ''' 来源:天善智能韦玮老师课堂笔记 ''' print("定义") a = 6 # python里无需定义 print("a=",a) a += 1 # + ...

  3. C++ 重载运算符 operator

    operator  是什么 operator 是C++的一个关键字,它和运算符(+,-,*,/,=,等等)一起使用,表示一个运算符重载函数 operator 没有返回语句 operator 的作用 : ...

  4. Python 位运算符

    Python 位运算符有 1 按位与(&) 2 按位或(|) 3 按位异或(^) 4 按位取反(~) 5 左位移(<<) 6 右位移(>>) 运算符 描述 & ...

  5. C++ sizeof 运算符的使用

    sizeof  是C++ 中 唯一的一个带字母的运算符, sizeof 的功能: 返回指定的数据类型或者表达式值的数据类型在内存中所占的字节数. sizeof  运算符的使用 1 sizeof(类型) ...

  6. C++ 获取内存地址(取值运算符)

    c++ 获取内存地址使用取值运算符 : & 下面看下& 的使用 #include <iostream> using namespace std; int main() {s ...

  7. Python 算术运算符

    算数运算符: 运算符 说明 实例 + 加 1+2  结果为3 - 减 2-1 结果为1 * 乘 2 * 2 结果为4 / 除 7/2 结果为3.5 % 取模  返回除法的余数 7%2 结果为1 // ...

  8. Python 运算符之成员运算符 in 与 not in

    Python成员运算符 in  是判断值在某个列表中就返回True , Python成员运算符 not in  是判断值不在某个列表中就返回True , 下面是简单的一个list 帮助理解 list_ ...

  9. 自兴人工智能——Python运算符和操作对象

    在Python中支持以下7种运算符: 1.算数运算符: +(加),-(减),*(乘),/(除),%(取余),**(幂):返回x的y次幂,//(取整除):返回商的整数部分 2.比较运算符:(返回的是一个 ...

  10. C++ 笔记(10)— 运算符(算术、关系、逻辑、位运算、赋值和其它运算符)

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号. C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其它运算符 1. 算术运算符 ...

最新文章

  1. 【SQL】sql语句LEFT JOIN(拼接表)详解
  2. (转)static 变量
  3. 三层聚合实验的注意事项
  4. matlab产生一组均为一的矩阵,在matlab中如何从一组数中得到随机数组成一个n*n的矩阵...
  5. python多线程下载器_用 python 实现一个多线程网页下载器
  6. eclipse 代码上传github 笔记
  7. 阿里云官方网站免费套餐怎么抢
  8. android4.0闪光灯亮度控制代码,android 应用开发如何调节闪光灯亮度?
  9. ConfuserEx加密工具
  10. 嵌入式软件工程师学习路线
  11. 问游戏java面试问题_JAVA程序员面试32问,你能回答多少题?
  12. 网络游戏开发成本,运营成本,收入
  13. 基础算法--背包问题(01背包问题、完全背包问题、多重背包问题、分组背包问题)
  14. Python math.perm() 方法
  15. Anaconda安装说明
  16. 民办大学计算机专业教师,考生被民办大学录取,看到高昂学费想放弃,老师坦言这个专业值得...
  17. 除了神经网络其他的智能算法,人工神经网络算法与机器算法
  18. 做网络爬虫需要掌握哪些技术?
  19. 11个免费的数据可视化工具推荐
  20. 乔梁:实施 DevOps 过程中的两个关键思考

热门文章

  1. 窗体的Alpha通道透明色支持
  2. [原创]浅谈在创业公司对PMF的理解
  3. (转)elasticsearch6.0版本安装head插件
  4. java 中的 Scanner
  5. hdu 5112 A Curious Matt
  6. 健身小管家--android app源码
  7. C、C++ 宽字符WCString转为char*
  8. 年年岁岁花相似,岁岁年年竟相同
  9. php伪静态的实现方式
  10. NodeJs回调操作Promise化