重新访问传递类型作为参数

时间:2011-03-01 23:43:53

标签: c#

如果没有泛型,我想将类型作为函数参数传递而不实例化类型。处理函数应该能够限制类型,例如(使用System.Enum作为示例,可以是任何类型):

enum QuestionTypes { Great, Good, Huh, Dumb, Dumber }
// error - "QuestionTypes is a type but used like a variable"
static void Main(string[] args) { TypeHandler(QuestionTypes); }
static void TypeHandler(System.Enum enumType) { /* do stuff */ }

这与传递类型名称,字符串或实例不同。 .NET应该能够传递一个类型似乎是合理的,因为定义存在于编译代码中。这只是一个反思的工作,还是可以不用?

1 个答案:

答案 0 :(得分:7)

所以....传递Type参数?

static void MyFunction(Type t)
{
  ...
}

MyFunction(typeof(QuestionTypes));