我正在尝试在添加到列表时通过其构造函数创建类型为T的新对象.
我收到编译错误:错误消息是:
'T':创建变量实例时无法提供参数
但我的类确实有一个构造函数参数!我怎样才能做到这一点?
public static string GetAllItems<T>(...) where T : new()
{
...
List<T> tabListItems = new List<T>();
foreach (ListItem listItem in listCollection)
{
tabListItems.Add(new T(listItem)); // error here.
}
...
}
Run Code Online (Sandbox Code Playgroud) 以下两种创建对象的方法有什么区别吗?
Student s1 = Activator.CreateInstance<Student>();
Student s1 = new Student();
Run Code Online (Sandbox Code Playgroud)
如果我有一个类型参数约束new():
void Foo<T>() where T : new()
{
var t = new T();
}
Run Code Online (Sandbox Code Playgroud)
在new T()内部使用该Activator.CreateInstance方法(即反射)是真的吗?