{
.....;
}
class Main()
{
void Run()
{
List<Staff> staffs = new List<Staff>();
}
}
问题:如果不知道Staff类的类名 只有一个string(值为"Staff") 如何像下面那样实例化List<>
List<Staff> staffs = new List<Staff>();
(我只知道如何利用反射实例化Staff 但是不知道如何实例化List<Staff>)
先谢谢大家了!
2 个解决方案
#1
var d1 = typeof(List<>);
Type[] typeArgs = { Type.GetType("Namespace.Staff") };
var makeme = d1.MakeGenericType(typeArgs);
object o = Activator.CreateInstance(makeme);
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
Type[] typeArgs = { Type.GetType("Namespace.Staff") };
var makeme = d1.MakeGenericType(typeArgs);
object o = Activator.CreateInstance(makeme);
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
#2
该如何使用List的Add方法? 因为当前的list为object类型
#1
var d1 = typeof(List<>);
Type[] typeArgs = { Type.GetType("Namespace.Staff") };
var makeme = d1.MakeGenericType(typeArgs);
object o = Activator.CreateInstance(makeme);
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
Type[] typeArgs = { Type.GetType("Namespace.Staff") };
var makeme = d1.MakeGenericType(typeArgs);
object o = Activator.CreateInstance(makeme);
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
#2
该如何使用List的Add方法? 因为当前的list为object类型