我有一个类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。那很少是个好主意。

所以是的,使用第二个片段是完全合法的-但在几乎所有情况下,您都应该首选第一个版本。

09-28 14:31