使用Property属性调用方法/执行一段代码



只是想知道是否可以使用property属性调用方法。基本上,我想在任何公共属性发生更改时设置实体的状态。

就像我们有以下代码

public class Contact : EntityBase
{
    [NotifyChange]
    public string FirstName { get; set; }
    private void ChangeState()
    {
       EntityState = EntityState.Modified;
    }
}

当我们呼叫时

var c = new Contact();
c.FirstName = "John";

在设置FirstName的值之前(或之后),它调用EntityState()函数。

知道吗?

如果属性被重写为:会简单得多

public class Contact : EntityBase
{
    private string _firstName;
    [NotifyChange]
    public string FirstName
    {
        get
        {
            return _firstName;
        }
        set
        {
            ChangeState();
            _firstName = value;
        }
    }
    private void ChangeState()
    {
       EntityState = EntityState.Modified;
    }
}

试试这个:

public class Contact : EntityBase
{
    private string _firstName;
    public string FirstName
    {
        get {return _firstName}
        set
          {
              _firstName = value;
              EntityState(); // maybe here must by ChangeState()
          }
    }
    private void ChangeState()
    {
       EntityState = EntityState.Modified;
    }
}

最新更新