是否可以评估调用 set 属性的事件

本文关键字:属性 事件 set 调用 评估 是否 | 更新日期: 2023-09-27 18:33:14

假设,我们有一个普通的C#类,有一个自动获取/设置属性。

public class Entity
{
       public String SomeProperty {get;set;}
}

当调用 SomeProperty 的 set 方法时,是否有任何事件被引发并且可以评估?

这样的事情是否可能以任何方式,也许是反思?

伪代码,没有真实代码:

Entity e = new Entity();
e.SomeProperty.SetterCalled += OnSetterCalled;
private void OnSetterCalled(Sender propertyinfo)
{
    propertyinfo pi = propertyinfo;
    Console.Write (pi.Name);
}

我知道,我可以使用CallerMember,但是后来我不得不更改auto属性。

是否可以评估调用 set 属性的事件

不,没有办法做到这一点。

二传手就是这样:

_backingVariable = value;

赋值本身不会调用任何方法。就目前而言,无法在使用自动属性的属性集中引发事件。

您可以在编译时使用类似于中所述的技术更改代码:https://stackoverflow.com/a/18002490/1783619

但除此之外,没有办法做到这一点。

我建议研究:

INotifyPropertyChanged

这是一个很好的演练:

实现 INotifyPropertyChanged - 是否存在更好的方法?