You could add the : new()
constraint:
void Foo<T>() where T : class, new() {
T newT = new T();
// do something shiny with newT
}
If you don't have the constraint, then Activator.CreateInstance<T>
may help (minus the compile-time checking):
void Foo<T>() {
T newT = Activator.CreateInstance<T>();
// do something shiny with newT
}
If you mean you the type itself, then probably something like:
Type itemType = typeof(int);
IList list = (IList)Activator.CreateInstance(
typeof(List<>).MakeGenericType(itemType));
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…