由于我无法对此post发表任何评论(仅发布回答),我会发布一个新问题。
我按照上述帖子的说明进行操作,但代码产生错误
代码:
Type t = Type.GetType(className);
Type listType = typeof(List<>).MakeGenericType(t);
IList list = (IList)Activator.CreateInstance(listType);
错误:
使用泛型类型'System.Collections.Generic.IList'需要'1'类型参数
显然,我不能只说明IList
没有任何类型,所以我想知道所提到的帖子的答案到底是怎么回事。
提前致谢。
答案 0 :(得分:9)
答案 1 :(得分:1)
Type t = Type.GetType(className);
Type listType = typeof(List<>).MakeGenericType(t);
IList list = (IList)Activator.CreateInstance(listType);
应该做的伎俩。
在使用IList接口检索对象时,您必须强制转换对象,但基础List将强制只将类型为T的对象添加到集合中。
答案 2 :(得分:0)