2
是否可以确定当前正在评估哪个案例?事情是这样的示例代码:如何确定switch语句中的当前情况?
const int one = 1;
const int two = 2;
int current_num = 1;
switch (current_num){
case one:
case two:
WriteLine(current_case) //outputs 'one'
break;
}
我相信我会变得棘手和使用字典什么的来查找current_num
一旦我开始WriteLine
,但也可能有一个内置的方式来获得当前正在评估的当前案件的名称。
编辑:简而言之,这是不可能的。检查JonSkeet的答案是一个合理的选择。
这是无效的C#开始,因为'case'表达式只能是常量。我认为你正在尝试做一些真正不存在的东西... – 2013-03-02 17:33:41
@JonSkeet:true,但是如果你用1等替换“one”,它仍然是一个有趣的问题。尽管我非常怀疑没有IL编织或其他后处理技术是可能的。 – Alxandr 2013-03-02 17:35:13
@Alxandr:如果用1替换“one”,那么为什么不使用'WriteLine(current_num)'?真的不清楚OP究竟在努力达到什么 - 我已经发布了一个可能会有所帮助的答案,但我们可以做得更清楚。 – 2013-03-02 17:36:19