1

switchステートメントを使用して、ケース全体で使用される1つの特定の変数の値を設定する方法はありますか?現時点では、値が1の場合、変数を1にし、値が2の場合、変数を2にします。実際には、次の方法で実行しています。

Int variable = value;

..しかし、例がより複雑な将来の参考のために、私は方法があるかどうか疑問に思いました。(現在、変数の取得はすでに定義されているエラーです)。

  switch (value)
        {
            case 0:
                int Variable = 0;
                break;
            case 1:
                int Variable = 1;
                break;
            case 2:
                int Variable = 2;
                break;
            case 3:
                int Variable = 3;
                break;
            case 4:
                int Variable = 4;
                break;
        }
4

2 に答える 2

5

ハッシュテーブルや辞書はどうですか。面倒ですが、かなり読みやすいと思います。

ここから取ったアイデア。

Dictionary<string, int> numbers = new Dictionary<string, int>(){
    {"zero", 0},
    {"one", 1},
    {"two", 2},
    {"three", 3},
    {"four", 4},
    {"five", 5},
    {"size", 6}
};

int Variable = numbers[value];
于 2012-06-26T01:14:39.260 に答える
2

swtichの外部で変数を宣言した場合、「変数はすでに定義されています」というエラーは発生しません。これは、内部のすべてがswitch同じスコープ内にあるために発生しています。

例:

int Variable = -1;

switch (value)
{
        case 0:
            Variable = 0;
            break;
        case 1:
            Variable = 1;
            break;
        case 2:
            Variable = 2;
            break;
        case 3:
            Variable = 3;
            break;
        case 4:
            Variable = 4;
            break;
}
于 2012-06-26T00:45:46.867 に答える