public class staff
{
..........;
}
private void Run()
{
List<staff> staffs = new List<staff>();
}
如果我仅仅有一个字符串值为staff类的类名,且我不知道staff类的类名,该如何实现上面的操作?
即如何根据字符串(类名)实现下面的操作:
List<staff> staffs = new List<staff>();
先谢了!
关键字:反射。
我知道怎么用反射实例化一个类 但是不清楚如何实例化List<> 可以详细解释一下吗 谢谢!
@Xuen:参考下:
//反射创建泛型集合 Type lt = typeof(List<>); var t=Type.GetType("表达式解析器.TTT");//命名空间不能省 Type[] typeArgs = {t }; var m=Activator.CreateInstance(t); lt=lt.MakeGenericType(typeArgs); var list=Activator.CreateInstance (lt) as IList; list.Add(m);
在MSDN上查询反射相关内容,会对你有帮助。
楼主可能误入歧途了。
1、你不知道类
2、你知道LIST
其实你完全可以类似这样解决的。
dim a as new List(of object)
...
利用反射获取 classname的实例b
...
a.add(b)
这时候a就是你需要的List(Classname)
大部份情况下,你不需要连List也使用反射来构造啊。你只需要使用反射得到ClassName的实例,再
将这个实例加入List就行了。