3

現在評価されているケースを特定することはできますか?このサンプルコードのようなもの:

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の回答を確認してください。

4

1 に答える 1

6

あなたが何をしようとしているのかははっきりしていませんが、列挙型を使用したほうがよいと思います。

enum Foo {
    One = 1,
    Two = 2,
    Three = 3
}

...

int someValue = 2;
Foo foo = (Foo) someValue;
Console.WriteLine(foo); // Two

これは、caseステートメント内で引き続き使用できます。

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");
}
于 2013-03-02T17:35:16.643 に答える