何时使用FOR-CASE(Foreach /在C#中切换)?

1 c# foreach switch-statement

在我正在研究的项目中,我发现了似乎是FOR-CASE结构的C#等价物:

foreach (string param in params.Split(';'))
{
    string[] parts = param.Split('=');
    string key = parts[0].Trim().ToLower();
    string value = parts[1].Trim();
    switch (key)
    {
        case "param1": this.param1 = value; break;
        case "param2": this.param2 = value; break;
        case "param3": this.param3 = value; break;
        case "param4": this.param4 = value; break;
        default: break;
    }
}
Run Code Online (Sandbox Code Playgroud)

(变量名称已更改以保护有罪.)

你会如何实现这个代码?

Gug*_*uge 6

我不认为你问题中的代码与你链接的代码有什么关系....

问题中的代码看起来像我编写命令行工具时可能会做的事情.

我是不是因为没有看到问题代码中的错误而愚蠢?

另一种方法是使用反射来填充参数值变量.我有时候也是这样做过的.

BTW:我曾经用脚本语言编写了一个程序,它将switch作为唯一的流控制机制,没有gosub/return.我程序中的代码结构有点像你链接的代码.对一种指令变量进行大规模切换,在每种情况结束时重新分配,并在交换机周围进行几乎无限循环.它完成了工作.