为什么在实现iNotifyPropertyChanged时检查PropertyChanged事件的空值?

iAt*_*_it 5 c# mvvm

我正在详细阅读iNotifyPropertyChanged.

有人可以澄清为什么我们需要检查 PropertyChanged !=null

为什么一个事件是空的?或者换句话说,为什么甚至检查它是否为空?NotifyPropertyChanged调用的唯一时间是何时PropertyChanged被引发(因此它不能为null),不是它.谁/什么可以使它为空?

    public event PropertyChangedEventHandler PropertyChanged;

    private void NotifyPropertyChanged(string info)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this,new PropertyChangedEventArgs(info));
        }

    }
Run Code Online (Sandbox Code Playgroud)

谢谢.

Mik*_*oud 9

如果没有人订阅该事件,它将为null.因此,如果不这样做,您将在运行时获得事件的NullReferenceException.

在您正在谈论的界面的情况下,它也可能在订阅者有机会订阅之前发生提升动作,尽管他们将要订阅,因为INotifyPropertyChanged界面非常繁琐.