方法调用上的问号语法

本文关键字:语法 调用 方法 | 更新日期: 2023-09-27 18:26:52

?在以下C#代码中表示什么?

var handler = CallBack;
handler?.Invoke();

我已经读到,您可以在类型之前使用?来指示它是一个可为null的类型。这是在做同样的事情吗?

方法调用上的问号语法

这是使用null conditional operator的C#代码,表示如果handler为空,则此代码不会引发NullReferenceException异常:

Delegate handler = null;
handler?.Invoke();

这避免了你在C#语言的早期版本中必须进行的空检查:

Delegate handler = null;
if (handler != null)
{
    handler.Invoke();
}