哪个代码编写得更好?

时间:2012-02-09 21:29:55

标签: c# static-code-analysis

我在我们的工具上运行了一个静态代码分析工具并查看其结果,下面的代码就是它所讨论的事情之一:

    SpreadSnapshot oSnap = new SpreadSnapshot();
    using (oSnap.SetRowCol(fpSpread, row, col))
    {
        SpreadSetComboBox(fpSpread, list, displayProperty);
    }

所以我将其更改为下面的代码并修复了该工具正在讨论的错误:

    using (SpreadSnapshot oSnap = new SpreadSnapshot())
    {
        oSnap.SetRowCol(fpSpread, row, col);
        SpreadSetComboBox(fpSpread, list, displayProperty);
    }

所以在您看来,您认为哪种编码风格更合适,更不容易出错?

由于

2 个答案:

答案 0 :(得分:6)

后者 - 它确保您不会在 oSnap声明之后使用using

除了其他任何事情,SetRowCol返回一些可以丢弃的东西是很奇怪的......这甚至意味着什么?

答案 1 :(得分:4)

除非SetRowCol在最后返回this,否则这两者意味着完全不同的事情。首先,您要处理SetRowCol的结果。在第二个中,您将处置SpreadSnapshot

如果两者都是一次性的,你应该同时使用:

using (SpreadSnapshot oSnap = new SpreadSnapshot())
using (oSnap.SetRowCol(fpSpread, row, col))
{
    SpreadSetComboBox(fpSpread, list, displayProperty);
}