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

C# 泛型类的默认构造函数的语法是什么?,c#,.net,generics,C#,.net,Generics,在C#中是否禁止为泛型类实现默认构造函数 如果不是,为什么下面的代码不编译?(当我删除时,它会编译) 那么,为泛型类定义默认构造函数的正确方法是什么 public class Cell<T> { public Cell<T>() { } } 公共类单元格 { 公共单元格() { } } 编译时错误:错误1类、结构或接口成员声明中的无效标记“(”您没有在构造函数中提供类型参数。您应该这样做 public class Cell<T>

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

如果不是,为什么下面的代码不编译?(当我删除
时,它会编译)

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

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;}
}
公共类单元格
{
公共单元格()
{
类型=类型(T);
}
公共类型类型{get;}
}

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

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

    public Cell(T thing)
    {
        Thing = thing;
    }
}
公共类单元格
{
公共T事物{get;}
公共小区(T物)
{
事物=事物;
}
}