【发布时间】:2008-12-02 20:55:54
【问题描述】:
在我正在处理的项目中,我发现了与 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;
}
}
(更改了变量名称以保护有罪者。)
您将如何实现此代码?
【问题讨论】:
-
我不确定我是否明白您所说的“您将如何实现此代码?”是什么意思
-
不,这不是同一个范例——它很丑,需要改进,但它(相当)没有那么糟糕。至少这些案例中的一些可能不存在,或者无关紧要的案例会存在。
-
哈哈。我很混乱。我不知道文章中的代码试图完成什么。您在问题中的内容看起来对于解析某种参数很有用,但链接文章中的内容看起来完全没有意义。
-
这并没有wtf文章中的代码那么糟糕,因为在你的例子中,你不知道顺序参数会进来。对于快速和肮脏的命令或属性是可以的解析,尽管有更漂亮和更灵活的方法。
-
我认为 TDWTF 中代码背后的想法很好,因为它为程序员留下了执行错误检查的空间。但是,它可以使用一些代码重构来提高优雅度。
标签: c# foreach switch-statement