如何捕捉有价值的oop & &;通用的

本文关键字:oop 何捕捉 有价值 | 更新日期: 2023-09-27 18:16:38

下面是我的代码。

 class Program
    {
        static void Main(string[] args)
        {
            var _User = new User { Name="Test", Age=12 };
            _User.Save();
        }
    }
    public class DBObject<T>
    {
        public void Save()
        {
        }
    }
    public class User : DBObject<User>
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }

我想捕获用户名&保存方法中的年龄?我怎么能这样做......plzz指南。由于

如何捕捉有价值的oop & &;通用的

在查看代码时,为什么要在泛型方法中读取特定于类的属性?

我看到的唯一解决方案是使用反射,或创建一个抽象基类与之前保存方法,并在de save()方法中调用该方法。向DBObject类添加泛型类型约束,定义T为基类型。通过这种方式,您可以向泛型方法添加特定于类的功能。像这样:

public abstract class Base
{
     public virtual void BeforeSave()
     {
     }
}
public class User : Base
{
     public string Name { get; set; }
     public int Age { get; set; }      
     public override void BeforeSave()
     {
          // You can access your properties here
          if (this.Name.Trim() == "")
              throw new Exception("Name is mandatory!")
     }
}
public class DBObject<T>
    where T: Base
{
    public void Save()
    {
        T.BeforeSave();
    }
}