簡體   English   中英

使用null條件運算符和動作

[英]Using the null conditional operator and actions

我有以下課程:

public class MyClass
{
    public Action SomeAction { get; set; }
}

之前調用SomeAction因為它有可能為null我們會做類似的事情:

var action = SomeAction;
if (action != null)
{
    action();
}

但是,在我們現在有了null條件運算符,因此可以將上面的內容寫成:

SomeAction?.Invoke();

但是,由於Invoke調用,我發現這個可讀性稍差。 無論如何在沒有Invoke調用的情況下在這種情況下使用null條件運算符? 就像是:

SomeAction?();

不,C#6.0或7.0中沒有這樣的語法。 null條件運算符有兩種形式:

  • null條件成員訪問?. ,你已經拒絕了,因為過於冗長
  • null-condition index ?[ ,對代表沒有意義(並且不能作為擴展添加,或類似的東西)

文檔甚至直接提到了這一點:

您需要顯式調用Invoke方法,因為沒有空條件委托調用語法PropertyChanged?(e) 有太多模糊的解析情況允許它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM