我想通过一个 switch 语句来确定使用什么类型来制作包含泛型的东西。
下面是一个愚蠢但说明性的代码,显示了我正在尝试做的事情:
Type tempType;
switch(number)
{
case 0:
tempType = typeof(int);
break;
case 1:
tempType = typeof(bool);
break;
case 2:
tempType = typeof(long);
break;
}
List<tempType> theList = new List<tempType>();
当我尝试这个时,它给出了错误:
找不到类型或命名空间名称“tempType”(您是否缺少 using 指令或程序集引用?)
我对原因的假设是因为它正在寻找在那里全局可用的类型,而不是在这个方法的本地成员变量中寻找。我怎么能做这样的事情?
编辑:为了提供更多上下文,我正在尝试使用 Quartz.NET,并且我正在尝试用它创建不同的作业,因此本示例中的每种类型都是不同的作业类,每个都有其特定的执行命令。不同的情况是我想访问那个特定的工作类别。然后我将通过以下方式创建工作:
tempJob = JobBuilder.Create<tempType>()
.WithIdentity("SomeJob " + i)
.UsingJobData()
.Build();