从"使用"声明的范围内返回?

Guy*_*Guy 6 .net c#

我有一些看起来像这样的代码:

using (DBDataContext dc = new DBDataContext(ConnectionString))
{
    Main main = new Main
    {
        ClientTime = clientTime
    };
    dc.Mains.InsertOnSubmit(main);
    dc.SubmitChanges();
    return main.ID;
}
Run Code Online (Sandbox Code Playgroud)

如果我从"使用"里面返回,那么使用还会清理吗?

Otá*_*cio 24

是的,这是它的一大优势using.


Jon*_*eet 12

是.它实际上只是一个try/finally语句的等价物- 然后finally块被执行但是try块退出,无论是通过异常,返回语句,还是只是到达块的末尾.