使用switch语句只设置一个特定变量的值?

时间:2012-06-26 00:39:48

标签: c# .net

有没有办法使用switch语句来设置整个案例中使用的一个特定变量的值?如果value为1,我希望变量为1,如果value为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;
        }

2 个答案:

答案 0 :(得分:5)

哈希表或字典怎么样?这很麻烦,但我觉得很可读。

来自here的想法。

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];

答案 1 :(得分: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;
}