如果在using子句中发生错误,C#`Using`语句是否会关闭变量

iam*_*eed 0 c# idisposable using spweb sharepoint-2010

可能重复:
什么是C#使用块,为什么要使用它?

如果我运行以下代码:

using (SPWeb web = SPContext.Current.Site.OpenWeb("/myweb")){

   //error happens here
}
Run Code Online (Sandbox Code Playgroud)

如果在结束括号之前发生错误web,是否会正确处理对象

我们被告知使用对象的using语句OpenWeb是最好的,但
我们在日志中看到很多关于SPRequests和SPWeb的错误.

Ed *_* S. 6

是的,这就是重点.这是语法糖:

SomeType obj = new SomeType();
try
{
    // do stuff with obj
    // if an exception is thrown then the finally block takes over
}
finally
{
    if(obj != null)
        obj.Dispose();
}
Run Code Online (Sandbox Code Playgroud)