.NET使用块和返回; 关键词

Sno*_*ogg 10 .net using-statement

当我说这个

using (Entities db = new Entities())
{
    return db.TableName.AsQueryable().ToList();
}
Run Code Online (Sandbox Code Playgroud)

我是否绕过了使用块的功能,因为我返回了一些内容,并且该方法在退出using块之前退出,因此我认为using块不会用于其目的并处置资源.

它是否正确?

SLa*_*aks 15

你错了; 它被设置.

using语句编译为一个try/ finally块,用于处理块中的原始对象finally.
finally总是执行,即使内的代码try块返回的值或抛出异常.

  • 最后块不总是*执行;)http://thedailywtf.com/Comments/My-Tales.aspx (2认同)