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

pen*_*ake 80 .net c# generics

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

如果没有,为什么下面的代码不编译?(当我删除<T>它时编译)

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

public class Cell<T> 
{
    public Cell<T>()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Tre*_*ley 135

您没有在构造函数中提供type参数.这就是你应该怎么做的.

public class Cell<T> 
{
    public Cell()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)


Rog*_*erW 8

如果您需要Type作为属性:

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

    public Type TheType { get;}
}
Run Code Online (Sandbox Code Playgroud)


小智 6

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

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

    public Cell(T thing)
    {
        Thing = thing;
    }
}
Run Code Online (Sandbox Code Playgroud)