【发布时间】:2010-11-03 20:42:10
【问题描述】:
我正在使用类表继承来实现类型层次结构。但是,我遇到了返回基类型而不是子类型的静态方法的问题。我找到了解决这个问题的方法,但它不太漂亮。参加以下课程
public class Entity : ActiveRecordBase<Entity> { }
public class Person : Entity {}
打电话
Person.FindAll();
实际上返回一个 Entity[] 而不是 Person[]。我可以通过在所有派生类中实现 FindAll 来解决这个问题,但是谁愿意这样做呢?我还能够创建一个所有类都派生自并实现的基类
public R[] FindAll<R>() {}
但我就是不喜欢这个样子
Person.FindAll<Person>()
有什么方法可以从派生类调用 FindAll() 并实际获取派生类而不是基类?
【问题讨论】:
标签: c# inheritance castle-activerecord