是否可以确定当前正在评估哪种情况?像这个示例代码:
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的答案,找出合理的替代方案。
答案 0 :(得分:5)
目前还不是很清楚你要做什么,但我怀疑你会更好地使用枚举:
enum Foo {
One = 1,
Two = 2,
Three = 3
}
...
int someValue = 2;
Foo foo = (Foo) someValue;
Console.WriteLine(foo); // Two
您仍然可以在案例陈述中使用它:
switch (foo) {
case Foo.One:
case Foo.Two:
Console.WriteLine(foo); // One or Two, depending on foo
break;
default:
Console.WriteLine("Not One or Two");
}