从具有泛型类型的类继承

时间:2015-08-11 20:07:39

标签: c# generics inheritance

我有一个具有泛型类型的类

class GenericClass<T> where T : new()
{
    public T GenericType;

    public GenericClass()
    {
        GenericType = new T();
    }
}

我现在想要创建从我的GenericClass继承的新类,但是将新类作为类型传递。

所以...

class Class1:GenericClass<Class1>
{
    public string Class1Property { get; set; }
}

class Class2 : GenericClass<Class2>
{
    public string Class2Property { get; set; }
}

如果我这样做,然后创建一个新的Class 1实例,代码将进入无限循环。

Class1 c1 = new Class1();

我正在尝试做什么?

1 个答案:

答案 0 :(得分:4)

GenericType = new T();
基础构造函数中的

正在调用继承类型的构造函数,该类型调用基本构造函数,继续循环。

如果您只是想跟踪继承的类的类型,请尝试

typeof(T);

this.GetType();

因为他们为您提供了类型,而无需创建该类型的新实例。