C#问号?运算符

1,三目操作运算符【 ? : 】

问号前面的是条件,后面的是结果,条件满足返回冒号前面的值否则后面的值。

return a > b ? a : b;

2,基本数据类型可空标识符【?】

可空类型。

int? k = null;

3,null合并运算符【??】
如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。

string res = a;
if (a == null)
res = "";
//等价于
res = a ?? "";

4,null条件运算符【?.】

用于在执行成员访问 (?.) 或索引 (?[) 操作之前,测试是否存在 NULL。不为null则取其属性。

var handler = this.PropertyChanged;
if (handler != null)
handler(…)

新方法

PropertyChanged?.Invoke(e)

新方法是线程安全的,因为编译器生成代码以评估 PropertyChanged(仅一次),从而使结果保持在临时变量中。

发表评论

电子邮件地址不会被公开。 必填项已用*标注