I'm writing a Generic class as follows.
public class Foo<T> :
where T : Bar, new()
{
public void MethodInFoo()
{
T _t = new T();
}
}
As you can see the object _t
of type T is instantiated at runtime. To support instantiation of generic type T, the language forces me to put new() in the class signature. I'd agree to this if Bar is an abstract class but why does it need to be so if Bar standard non-abstract class with public parameterless constructor.
The compiler prompts with the following message if new() is not found.
Cannot create an instance of the variable type 'T' because it does not have the new() constraint