我目前正在为 INotifiyPropertyChanged 接口实现一个扩展,您可以阅读以下内容:
INotifyPropertyChanged - 事件保持为空
了解更多信息。
现在我想进一步扩展这个扩展,这样我就不需要声明 MemberExpression 并且在从 CallerMemberName 属性完成其余部分的集合中调用它时。
因此,我尝试执行以下操作(基于我上一个 stackoverflow 问题中提供的链接):
public static void Notify(this PropertyChangedEventHandler EventHandler, object sender,
[CallerMemberName] String propertyName = "")
{
if (EventHandler != null)
{
EventHandler(sender, new PropertyChangedEventArgs(propertyName));
}
}
这允许我调用这样的方法:
this.PropertyChanged.Notify(this); //with CallerMemberName
this.PropertyChanged.Notify(this, "RandomProperty");
现在我想删除总是写 (this, ..) 参数的必要性,然后像这样调用它:
this.PropertyChanged.Notify(); //with CallerMemberName
this.PropertyChanged.Notify("RandomProperty");
这怎么可能?