可能重复:
什么是 C# Using 块,我为什么要使用它?
如果我运行以下代码:
using (SPWeb web = SPContext.Current.Site.OpenWeb("/myweb")){
//error happens here
}
如果在右括号之前发生错误,对象web
会被正确处理吗?
我们被告知对我们的对象使用using
语句是最好的,但是
我们在有关 SPRequests 和 SPWeb 的日志中看到了很多错误。OpenWeb
可能重复:
什么是 C# Using 块,我为什么要使用它?
如果我运行以下代码:
using (SPWeb web = SPContext.Current.Site.OpenWeb("/myweb")){
//error happens here
}
如果在右括号之前发生错误,对象web
会被正确处理吗?
我们被告知对我们的对象使用using
语句是最好的,但是
我们在有关 SPRequests 和 SPWeb 的日志中看到了很多错误。OpenWeb
是的,这就是重点。它是语法糖:
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();
}
有关“使用”功能的完整说明,请参见 MSDN:http: //msdn.microsoft.com/en-us/library/yh598w02.aspx
简短的回答是肯定的,因为 Dispose 在 finally 子句中。