如何在switch语句中确定当前的大小写?

时间:2013-03-02 17:31:46

标签: c# switch-statement

是否可以确定当前正在评估哪种情况?像这个示例代码:

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的答案,找出合理的替代方案。

1 个答案:

答案 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");
}