这是我的代码。
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; }
}
我想捕获用户名&amp;年龄来自保存方法?我怎么能这样做...... plzz指南。感谢
答案 0 :(得分:0)
在查看代码时,为什么要在泛型方法中读取特定于类的属性?
我看到的唯一解决方案是使用Reflection,或者使用before save方法创建一个抽象基类,并在de Save()方法中调用该方法。向DBObject类添加泛型类型约束,定义T是basetype。这样,您可以向泛型方法添加特定于类的功能。像这样:
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();
}
}