在我正在研究的项目中,我发现了似乎是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; } }
(变量名称已更改以保护有罪.)
你会如何实现这个代码?
我不认为你问题中的代码与你链接的代码有什么关系....
问题中的代码看起来像我编写命令行工具时可能会做的事情.
我是不是因为没有看到问题代码中的错误而愚蠢?
另一种方法是使用反射来填充参数值变量.我有时候也是这样做过的.
BTW:我曾经用脚本语言编写了一个程序,它将switch作为唯一的流控制机制,没有gosub/return.我程序中的代码结构有点像你链接的代码.对一种指令变量进行大规模切换,在每种情况结束时重新分配,并在交换机周围进行几乎无限循环.它完成了工作.