例如,实现
INotifyPropertyChanged
接口:public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
var handler = PropertyChanged;
if (handler != null)
handler.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
有两件事:
- 将事件复制到本地变量中以防止多线程出现错误(这里有一些示例)。如果不将其复制到本地变量,则Resharper会给出通知:
- 将其检查为空,以避免
NullReferenceException
但是现在,我们可以使用?.
运算符进行空值检查。如果我使用它,Resharper就会处于闲置状态:
所以问题是: 如果我使用空值条件运算符,是否应该将事件ProperyChanged
复制到本地变量中?