我需要为C#中的泛型类创建无参数实例。
这该怎么做。
最佳答案
您可以添加: new()
约束:
void Foo<T>() where T : class, new() {
T newT = new T();
// do something shiny with newT
}
如果没有约束,则
Activator.CreateInstance<T>
可能会有所帮助(减去编译时检查):void Foo<T>() {
T newT = Activator.CreateInstance<T>();
// do something shiny with newT
}
如果您是指类型本身,则可能类似于:
Type itemType = typeof(int);
IList list = (IList)Activator.CreateInstance(
typeof(List<>).MakeGenericType(itemType));