?
在以下C#代码中表示什么?
var handler = CallBack;
handler?.Invoke();
我已经读过你可以在类型之前使用?
来表明它是可以为空的类型。这是做同样的事吗?
答案 0 :(得分:26)
这是使用null conditional operator
的C#6代码,表示如果NullReferenceException
为空,此代码不会抛出handler
异常:
Delegate handler = null;
handler?.Invoke();
避免编写在以前版本的C#语言中必须执行的空检查:
Delegate handler = null;
if (handler != null)
{
handler.Invoke();
}