我有一些看起来像这样的代码:
using (DBDataContext dc = new DBDataContext(ConnectionString))
{
Main main = new Main
{
ClientTime = clientTime
};
dc.Mains.InsertOnSubmit(main);
dc.SubmitChanges();
return main.ID;
}
如果我从“使用”内部返回,使用仍然会清理吗?
答案 0 :(得分:24)
是的,这是using
它的一大优势。
答案 1 :(得分:12)
是。它实际上只相当于try/finally
语句 - 并且finally
块被执行但是try
块退出,无论是通过异常,返回语句,还是刚刚结束块。
答案 2 :(得分:3)
是的,它会。
答案 3 :(得分:1)
是的,在using语句的资源获取部分初始化的所有对象实例都将自动调用Dispose()
方法。
答案 4 :(得分:0)
是的,它会清理干净。我认为这是C#的穷人试图支持Resource Acquisition Is Initialization模式。