工作時遇到大佬寫的代碼:
A?.Invoke("Hehe");
這是C#6.0新語法,百度搜索叫“空值傳播運算符”,《C# 本質論》中翻譯爲null條件操作符。
在調用值爲null的方法時,運行時都會拋出一個System.NullReferenceException的異常,通常以此表明程序邏輯上存在錯誤。考慮到在調用成員之前進行null值檢查這一模式的頻率很高,C# 6.0 引入了一種更爲簡化的null條件操作符(null-condition operator) ?.。
null條件操作符在調用方法或屬性之前檢查操作數是否爲null,如果爲null,則不執行方法組。
上述示例等價於
if(A == null)
{
//不執行
}
else
{
A.Invoke("Hehe");
}