【发布时间】:2013-10-01 13:46:15
【问题描述】:
我有以下方法,它以类的类型作为参数:
public void test(Type proType){
}
我目前有一个大的if else,看起来像:
if(proType == typeof(Class)){}
大约有十个,这看起来很不整洁。
我试着把它变成一个开关,但不能让它工作。
有没有更好的做法来让 switch 语句起作用?
switch (proType)
{
case typeof(ClassName):
break;
}
“需要一个常数值”
函数被称为test(typeof(class))
所以目标是我有一个包含许多小类的大对象。
typeof(class) switch/if 语句允许我决定进入哪个容器来取出对象。
【问题讨论】:
-
把你的代码放在这里,这可能是愚蠢的,一个开关应该没有任何问题
-
方法
test(Type proType)的目的是什么?怎么称呼?你在做类似test(typeof(someObj))的事情吗?如何将每个案例的代码封装在您正在测试的每种类型的已知接口方法中? -
可能应该寻找通用解决方案
-
switch 对 Type 类型的对象不起作用 - “预期的整数类型”错误
-
打开字体通常是设计损坏的好兆头。面向对象的语言通常提供更好的方法。
标签: c# if-statement switch-statement typeof