我试图了解以下代码为何不起作用,以及如何对其进行更改以使其起作用。简而言之,我试图将Type传递给方法,然后在声明List时使用该Type。
public void TestMethod(Type type)
{
List<type> items = new List<type>();
}
我得到一个错误:“'type'是一个变量,但像类型一样使用”
谢谢!
答案 0 :(得分:3)
那将是:
public void TestMethod<T>()
{
List<T> items = new List<T>();
}
关于理论,评论中的人很好地解释了这一点。您可以随时查看有关泛型的文档:)
答案 1 :(得分:1)
您不能没有反思。但是,您可以通过反射来实现。
string typeName = "System.String";
Type typeArg = Type.GetType(typeName);
Type genericClass = typeof(List<>);
Type newClass = genericClass.MakeGenericType(typeArg);
object created = Activator.CreateInstance(newClass);