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;}
}