作为测试用例,我创建了以下非常简单的方法:
public static object TestMethod(Type t)
{
return t;
}
对于我试图通过它的类型,我创建了一个非常基本的类作为测试:
public class TestClass
{
public string name { get; set; }
}
最后我试图正常调用该方法:
TestClass sample = TestMethod(TestClass);
然而,当TestClass作为TestMethod
的参数传递时,我收到错误:"' TestClass'是一种类型,在给定的上下文中无效。"
这对我来说没有意义,因为所需的参数是一种类型。
答案 0 :(得分:2)
要使用您的方法,请按照这样做
TestClass sample = (TestClass)TestMethod(typeof(TestClass));
您的结果将是类型,而不是TestClass
,因此您将获得RuntimeException。
在现有实例上使用
TestMethod(testClassInstance.GetType())
但是你想要实现什么目标?
答案 1 :(得分:0)
试试这个:
TestClass sample = (TestClass)TestMethod(typeof(TestClass)); //notice the cast because the method is returning an object
上面编译但是会抛出一个无效的强制转换异常:高级专业人员应该告诉你的是你需要更改 这个< / p>
public static object TestMethod(Type t)
{
return Activator.CreateInstance(t);
}