Если вы хотите создать свой собственный экземпляр T, то вам нужно определить ограничение new()
class Data<T> where T: new()
{
T obj;
public Data()
{
obj = new T();
}
}
Если вы хотите передать объект, то вам нужно разрешить его в конструкторе
class Data<T>
{
T obj;
public Data(T val)
{
obj = val;
}
}
ВЫ можете использовать new
constraint в общем определении класса, чтобы гарантировать, что T имеет конструктор по умолчанию, который вы можете вызвать. Ограничения позволяют информировать компилятор об определенных поведениях (возможностях), которых должен придерживаться общий параметр T.
class Data<T> where T : new()
{
T obj;
public Data()
{
obj = new T();
}
}