What is the syntax for a default constructor for a generic class?

Is it forbidden in C# to implement a default constructor for a generic class?

If not, why the code below does not compile? (When I remove <T> it compiles though)

What is the correct way of defining a default constructor for a generic class then?

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

Compile Time Error: Error 1 Invalid token '(' in class, struct, or interface member declaration


Solution 1:

You don't provide the type parameter in the constructor. This is how you should do it.

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

Solution 2:

And if you need the Type as a property:

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

    public Type TheType { get;}
}