何时类型不是类型?错误:'是一种类型,在给定的上下文中无效'

时间:2018-03-01 03:43:58

标签: c# types typeof

考虑以下代码,第一次调用AcceptType1编译正常,但AcceptType1(XYZ);的第二次调用失败。具体错误是:

  

错误CS0119' XYZ'是一种类型,在给定的上下文中无效

我不理解错误消息背后的细节,并且由于XYZ类型正是{{1接受。如果AcceptType1是一种类型,那么为什么需要调用XYZ

typeof

2 个答案:

答案 0 :(得分:7)

XYZ是类XYZ的符号或名称。 typeof将获取有关类型的运行时信息,即System.Type。您还可以使用泛型传递类型符号,这些符号不能与typeof一起使用:

AcceptType1<T>()

其中T可以使用类型符号或名称填写。

答案 1 :(得分:0)

XYZ可能是一种类型,但它不是Type,这是您的方法作为参数所期望的。 typeof(XYZ)为您提供课程Type的{​​{1}}。