[英]Using the null conditional operator and actions
我有以下課程:
public class MyClass
{
public Action SomeAction { get; set; }
}
在c#-6.0之前調用SomeAction
因為它有可能為null
我們會做類似的事情:
var action = SomeAction;
if (action != null)
{
action();
}
但是,在c#-6.0中,我們現在有了null條件運算符,因此可以將上面的內容寫成:
SomeAction?.Invoke();
但是,由於Invoke
調用,我發現這個可讀性稍差。 無論如何在沒有Invoke
調用的情況下在這種情況下使用null條件運算符? 就像是:
SomeAction?();
不,C#6.0或7.0中沒有這樣的語法。 null條件運算符有兩種形式:
?.
,你已經拒絕了,因為過於冗長 ?[
,對代表沒有意義(並且不能作為擴展添加,或類似的東西) 文檔甚至直接提到了這一點:
您需要顯式調用
Invoke
方法,因為沒有空條件委托調用語法PropertyChanged?(e)
。 有太多模糊的解析情況允許它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.