簡體   English   中英

C#-為什么VS 2017灰顯事件對象上的null檢查?

[英]C# - Why is VS 2017 greying out null check on event object?

對事件對象執行空檢查時,Visual Studio會將代碼顏色更改為淺灰色。 如果我沒記錯的話,通常意味着這行是不必要的。 顯然,在我的情況下不是這樣(或者是?)。 請參閱下面的示例:

 public event PropertyChangedEventHandler PropertyChanged;

    string test; 

    protected void OnPropertyChanged (string propertyName)
    {
        if (PropertyChanged != null) {    //This line is grey
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }  //This line is grey
        if (test != null) {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }

這是屏幕截圖: 在此處輸入圖片說明

如果右鍵單擊並查看( 快速操作和重構 )建議的修復程序,您將看到可以通過使用?在與引發事件相同的行上執行null引用檢查? 操作員(安全導航操作員)。

建議采取的措施如下:

this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));

這是一個代碼建議。 如果將光標懸停在其上方,則在空白處會看到一個小“ Quick Actions”圖標,如果單擊它,則會看到它表示您可以通過使用null來改進語句(使其更簡潔)條件運算符:

在此處輸入圖片說明

PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));

暫無
暫無

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

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