我有一个类FooDataContext
,它实现了Linq的DataContext,该类具有Dispose()
。
public partial class FooDataContext : System.Data.Linq.DataContext {...}
我知道我应该在
using(<here>){}
中声明fooDataContext,因此像这样为我调用Dispose()public void Bar()
{
using (var fooDataContext = new FooDataContext(ConnStr))
{ // some code
}
}
但是我不知道这是否一样好。是吗?幕后发生了什么?
public void Baz()
{
var fooDataContext = new FooDataContext(ConnStr);
using (fooDataContext)
{ // some code
}
}
最佳答案
后者基本上具有相同的行为,但有一个缺点:即使在处理之后,仍可以在fooDataContext
语句之外引用using
。那很少是个好主意。
所以是的,使用第二个片段是完全合法的-但在几乎所有情况下,您都应该首选第一个版本。