代码之家  ›  专栏  ›  技术社区  ›  nickytonline

关于从方法/函数返回的性能/样式问题

  •  1
  • nickytonline  · 技术社区  · 16 年前

    我在一个项目中发现了这样的代码

    public SqlDataReader SomeMethod(int someParam)
    {
          // ... some code goes here
          SqlDataReader dataReader = m_command.ExecuteReader(CommandBehavior.CloseConnection);
          return dataReader;
    }
    

    我想知道什么更好,原版还是原版

    public SqlDataReader SomeMethod(int someParam)
    {
          // ... some code goes here
          return  m_command.ExecuteReader(CommandBehavior.CloseConnection);
    }
    

    创建变量然后返回它是否比返回创建的读卡器有任何优势?我认为不,因为这只是一个参考。我给出的示例是我发现的,但它可以是任何变量类型。我能想到的一件事是在调试期间,观察变量中的内容可能会很好。

    有人愿意贡献2美分吗?

    2 回复  |  直到 16 年前
        1
  •  2
  •   Michael Myers KitsuneYMG    16 年前

    调试可能是最好的原因。第一种方法更容易检查 dataReader null 在归还之前。

    正如你所说,确实不应该存在性能差异。如果经常调用此方法,则JIT编译器(如果启用)很可能会将局部变量优化掉。

        2
  •  1
  •   moinudin    16 年前

    任何半熟的编译器都会优化第一个示例,这样数据阅读器就不需要存储在临时变量中。换句话说,两个例子的效率应该完全相同。

    就我个人而言,我更喜欢第二个(较短的)示例,因为将该行拆分为两行根本无法简化阅读。

    推荐文章