下面的代码是实现协变返回类型的唯一方法吗?
public abstract class BaseApplication<T> {
public T Employee{ get; set; }
}
public class Application : BaseApplication<ExistingEmployee> {}
public class NewApplication : BaseApplication<NewEmployee> {}
我希望能够构造一个Application或NewApplication,并使其从Employee属性返回适当的Employee类型。
var app = new Application();
var employee = app.Employee; // this should be of type ExistingEmployee
我相信这段代码可以正常工作,但是当我有多个需要相同行为的属性时,它确实很讨厌。
还有其他方法可以实现此行为吗?泛型还是其他?
收到一只叮咚
潇湘沐
猛跑小猪
相关分类