【发布时间】:2011-12-09 13:26:16
【问题描述】:
在我的 c# 项目中,我有两个抽象的通用父类,然后有多个继承它们的子类。问题是我将子类型传递给父泛型,并且它使一些看起来很愚蠢的类和方法定义。
在通用父类中是否有办法获取继承它们的类的类型?因此,不必在 DTOBase 中传递类型,而是将其声明为 DTOBase 的第一个子项的类型。
父类定义
public abstract class DTOBase<T> : INotifyPropertyChanged, IMergeable<T>
public abstract class ModelBase<T,U> : INotifyPropertyChanged, ITrackable, IMergeable<U>
where T : DTOBase<T>
where U : ModelBase<T,U>
示例子类
public class MenuGroup : DTOBase<MenuGroup>
public class MenuGroup : ModelBase<DTOs.MenuGroup, MenuGroup>
【问题讨论】:
-
为什么需要继承类的类型?
-
在第一个例子中,DTOBase,我需要IMergeable接口定义的继承类的类型。
标签: c# class generics inheritance