Fre*_*red 4 c# return using-statement
我应该在return内部还是外部进行using声明?
public IEnumerable<Foo> GetData()
{
using (var db = new DbContext())
{
return db.Foo().ToList();
}
}
Run Code Online (Sandbox Code Playgroud)
要么
public IEnumerable<Foo> GetData()
{
IEnumerable<Foo> foo;
using (var db = new DbContext())
{
foo = db.Foo().ToList();
}
return foo;
}
Run Code Online (Sandbox Code Playgroud)
都可以。没有特殊的技术原因将其放在外面,因此请最适合您的风格。从using语句内部返回类似于从try带有finally附加语句的块内部返回。无论哪种方式,都会执行该finally块(在情况下为显式或隐式using)。
不要紧。实际上,同样的事情将会发生 - 即,在调用对象的方法期间,您将要返回的数据将被保存在临时文件Dispose()中db。
不同的商店喜欢不同的编码标准。例如,有些商店坚持除最后一行外不退货;在这种情况下,需要使用第二种选择。我更喜欢第一个片段,因为它用更少的变量和更少的代码传达了相同的含义。