泛型类的默认构造函数的语法是什么?


87

在C#中是否禁止为泛型类实现默认构造函数?

如果没有,为什么下面的代码无法编译?(<T>虽然我删除它编译)

那么,为泛型类定义默认构造函数的正确方法是什么?

public class Cell<T> 
{
    public Cell<T>()
    {
    }
}

编译时错误:错误1类,结构或接口成员声明中的无效令牌'('

Answers:



11

如果您需要将Type作为属性:

public class Cell<T>
{
    public Cell()
    {
        TheType = typeof(T);
    }

    public Type TheType { get;}
}

6

并且如果您需要注入类型的实例:

public class Cell<T>
{
    public T Thing { get; }

    public Cell(T thing)
    {
        Thing = thing;
    }
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.