ジェネリックの新しいインスタンスを作成したい場合は、次のように新しい制約を定義する必要があります。
public T SomeMethod<T>() where T : new()
{
return new T();
}
リフレクションを使用して、次のように新しい制約なしで T のインスタンスを作成することは可能ですか (疑似コードを含む):
public T SomeMethod<T>()
{
if (T has a default constructor)
{
return a new instance of T;
}
else
{
return Factory<T>.CreateNew();
}
}