我如何正确地传递这个类型
本文关键字:类型 正确地 | 更新日期: 2023-09-27 18:01:49
我想这样做:
Type curType = blah blah...;
dataSet.Add( NewItem<typeof(curType)>() );
与NewItem()为:
T NewItem<T>(){
return (T)Activator.CreateInstance(typeof(T));
}
,但我似乎不能传递一个动态类型在NewItem无论我尝试的方式
Activator.CreateInstance
有一个过载,它需要一个Type
实例,你已经在NewItem
包装器内部调用。您不妨直接调用它,而不是尝试动态调用NewItem
dataSet.Add(curType);
如果你真的只想要一个Activator.CreateInstance(...)
的包装器:
// using System.Reflection;
Type curType = // blah blah...;
dataSet.Add(GetType().GetMethod("NewItem").MakeGenericMethod(curType).Invoke(this, null));
dataSet.Add(Activator.CreateInstance(curType));
调用Activator.CreateInstance
可能会更有意义。