在for循环的控制部分中使用新语句

时间:2011-02-24 16:19:50

标签: c# coding-style

关于替换的判决是什么:

Regex exp = new Regex(MyReg, RegexOptions.IgnoreCase);
var matches = exp.Matches(source);
foreach (var m in matches)
      ...

使用:

foreach (var m in new Regex(MyReg, RegexOptions.IgnoreCase).Matches(source))
      ...

性能问题,更慢,难以理解?还是好吗?

3 个答案:

答案 0 :(得分:6)

我更喜欢您的第一个版本以提高可读性。你的第二个版本过多地放在一行上,我发现很难弄清楚发生了什么。

此外,如果您在此处出现错误,则使用第一个版本进行调试会更容易。

答案 1 :(得分:2)

整体表现应该是一样的。可读性受到一点IMO的影响,但实际上并不算太糟糕。所以我会主观地说这没关系。

答案 2 :(得分:2)

我不打算首先构建冗余的Regex对象。只需使用静态方法:

foreach (var m in Regex.Matches(source, MyReg, RegexOptions.IgnoreCase))
    // ...

这是最快和最易读的。