?? :
如果"??" 运算符左操作数非空, 返回左操作数,
如果"??" 运算符左操作数为空, 或者是没定义的, 则返回右操作数.
例子:
- int a = b ?? 1; //b 未定义 所以等价于 int a=1;
- string s=null;
string sb= s ?? ""; //s为空, 所以等价于 string sb=""; - string s="我不是null的哦!";
string sb=s ?? ""; //s不为空, 所以等价于 string sb="我不是null的哦!";
使用"??" 的优势在于使用不确定参数时;
如:
int? a=null;
这个时候你不能对a直接操作 否则回报值是空的错误!
你应该这么写:
int b= a ?? 0;