C#中是否禁止为泛型类实现默认构造函数?
如果不是,为什么下面的代码无法编译?(当我移除 <T>
后它就能编译了)
那么泛型类定义默认构造函数的正确方式是什么?
public class Cell<T>
{
public Cell<T>()
{
}
}
编译时错误:错误 1:在类、结构体或接口成员声明中,无效的标记“(”
在构造函数中,您没有提供类型参数。以下是正确的写法。
public class Cell<T>
{
public Cell()
{
}
}
如果您需要将类型作为属性:
public class Cell<T>
{
public Cell()
{
TheType = typeof(T);
}
public Type TheType { get;}
}
如果您需要注入该类型的实例:
public class Cell<T>
{
public T Thing { get; }
public Cell(T thing)
{
Thing = thing;
}
}
Cell
的基类Cell<T>: Cell
,那么扩展这个答案会很好。 - Learner