1

有没有办法使用 switch 语句来设置整个案例中使用的一个特定变量的值?目前,如果值为 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 回答