我发现似乎是 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;
}
}
(变量名称已更改以保护罪犯。)
您将如何实现此代码?
我认为您问题中的代码与您链接到的代码完全不同....
问题中的代码看起来像是我编写命令行工具时可能会做的事情。
我是不是很傻,没有看到问题中的代码有什么问题?
另一种方法是使用反射来填充参数值变量。我有时也这样做过。
顺便说一句:我曾经用脚本语言编写过一个程序,该程序将 switch 作为唯一的流控制机制,没有 gosub/return。我程序中的代码结构有点像您链接到的代码。一种指令指针变量上的巨大开关,在每个案例结束时都会重新分配,并且围绕开关几乎无限循环。它完成了工作。
我是一名优秀的程序员,十分优秀!