?和??的区别

? 是三元运算符,?? 是空合并运算符

?主要是用于逻辑判断,?? 用于防止null 引用异常

1
2
3
4
5
int a = 10;
int b = a > 0 ? 100 : 200; // 如果 a 大于 0,b 将被赋值为 100,否则为 200

string a = null;
string b = a ?? "default value"; // b 将被赋值为 "default value",因为 a 是 null