0

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

如果我运行以下代码:

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

   //error happens here
}

如果在右括号之前发生错误,对象web会被正确处理吗?

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

4

2 回答 2

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();
}
于 2012-12-20T20:38:06.517 回答
0

有关“使用”功能的完整说明,请参见 MSDN:http: //msdn.microsoft.com/en-us/library/yh598w02.aspx

简短的回答是肯定的,因为 Dispose 在 finally 子句中。

于 2012-12-20T20:39:02.620 回答