<分区>
例如实现INotifyPropertyChanged
接口(interface):
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
var handler = PropertyChanged;
if (handler != null)
handler.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
两件事:
- 将事件复制到局部变量以防止多线程错误(here 是一些示例)。如果您不复制到局部变量,Resharper 会发出通知:
- 检查它是否为 null,以防止
NullReferenceException
但是现在,我们可以使用 ?.
运算符进行空值检查。如果我使用它,Resharper 是空闲的:
所以,问题是:如果我使用 null 条件运算符,我是否应该将事件 ProperyChanged
复制到局部变量?