我在一个正在研究的项目中找到了这样的代码
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美分吗?
答案 0 :(得分:2)
调试可能是最好的理由。使用第一种方式,例如更容易在返回之前检查dataReader
是否为null
。
正如你所说,确实不应该有性能差异。如果经常调用此方法,则JIT编译器(如果已启用)很可能会优化局部变量。
答案 1 :(得分:1)
任何半合适的编译器都会优化第一个示例,使得dataReader不需要存储在临时变量中。换句话说,两个例子应该具有完全相同的效率。
就个人而言,我更喜欢第二个(较短的)例子,因为将这一行分成两行并不能简化阅读。