c# - Modified On Timestamp 根据类属性的任何更改更新

标签 c# object properties

我有点不确定我该如何表达这个问题,所以请原谅我是否重复。

基本上我想在每次更改属性时调用 UpdateModifiedTimestamp。这只是我很快编写的示例类,但应该可以解释我想要实现的目标。

每次更改名字、姓氏或电话时,都应更新 ModifiedOn 属性。

public class Student {
   public DateTime ModifiedOn { get; private set; }
   public readonly DateTime CreatedOn;
   public string Firstname { set; get; }
   public string Lastname { set; get; }
   public string Phone { set; get; }

   public Student() {
      this.CreatedOn = DateTime.Now();
   }

   private void UpdateModifiedTimestamp() {
      this.ModifiedOn = DateTime.Now();
   }
}

最佳答案

您所描述的内容听起来非常接近通常通过 INotifyPropertyChanged 完成的属性更改通知。界面。实现此接口(interface)将为您提供更通用的问题解决方案:

public class Student :INotifyPropertyChanged
{
   public string Firstname { set; get; }
   public event PropertyChangedEventHandler PropertyChanged;

   private void NotifyPropertyChanged(String info)
   {
      UpdateModifiedTimestamp(); // update the timestamp
      if (PropertyChanged != null)
      {
          PropertyChanged(this, new PropertyChangedEventArgs(info));
      }
   }

   string _firstname;
   public string Firstname  //same for other properties
   {
     get
     {
         return _firstname;
     }

     set
     {
        if (value != _firstname)
        {
            _firstname = value;
            NotifyPropertyChanged("Firstname");
        }
     }
   }
 }

这种方法也可以让您的类的消费者可以使用更改通知,如果这是您的目标,则可能更可取不同的解决方案。

关于c# - Modified On Timestamp 根据类属性的任何更改更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4777526/

相关文章:

c# - QuickGraph Metro 风格应用程序支持

c# - 我可以在 EntityFramework Core 中配置拦截器吗?

c# - 使用 Reactive Extension 处理一批请求

javascript - 从字符串创建一个 JavaScript 对象

javascript - 在对象数组中交换属性值的有效方法

javascript - 如何从 JavaScript 中的对象键值返回数组?

java - 如何在 ant build 中读取 .properties 文件中的部分?

c# - 比较属性不使用比较属性的显示属性

javascript - 访问内部属性名称以计算 ES6 中的新属性

c# - 从析构函数调用 BeginInvoke