Изменить после перечитывания вашего вопроса: это не дает прямого ответа на ваш вопрос, а скорее является предложением другой реализации.
Вы можете легко обойтись без использования отражения:
public class TestContainer<T>
{
private readonly List<T> _list;
public TestContainer()
{
_list = new List<T>();
}
public void Add()
{
_list.Add(default(T));
}
}
Затем, позвонив, например:
var t = new TestContainer<YourClass>();
t.Add();
t.Add();
t.Add();
, у вас будет список из 3 экземпляров YourClass с их значением по умолчанию