C#中是否禁止为泛型类实现默认构造函数?
如果没有,为什么下面的代码不能编译? (当我删除<T>
时,它会编译)
那么为泛型类定义默认构造函数的正确方法是什么?
public class Cell<T>
{
public Cell<T>()
{
}
}
编译时间错误:错误1无效的标记'('在类,结构或接口成员声明中
答案 0 :(得分:125)
您没有在构造函数中提供type参数。这就是你应该怎么做的。
public class Cell<T>
{
public Cell()
{
}
}
答案 1 :(得分:8)
如果您需要Type作为属性:
public class Cell<T>
{
public Cell()
{
TheType = typeof(T);
}
public Type TheType { get;}
}
答案 2 :(得分:2)
如果你需要注入一个类型的实例:
public class Cell<T>
{
public T Thing { get; }
public Cell(T thing)
{
Thing = thing;
}
}