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

本文关键字:一段 代码 执行 属性 Property 调用 方法 使用 | 更新日期: 2023-09-27 17:58:24

只是想知道是否可以使用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()函数。

知道吗?

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

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

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;
    }
}