我有一个具有泛型类型的类
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();
我正在尝试做什么?
答案 0 :(得分:4)
行
GenericType = new T();
基础构造函数中的正在调用继承类型的构造函数,该类型调用基本构造函数,继续循环。
如果您只是想跟踪继承的类的类型,请尝试
typeof(T);
或
this.GetType();
因为他们为您提供了类型,而无需创建该类型的新实例。