如果我使用"using"构造,我知道对象会自动处理.如果"using"构造中的语句引发异常,会发生什么."使用"对象仍然处理?如果是的话,何时?
Rex*_*x M 11
using编译器将块转换为:
DisposableType yourObj = new DisposableType();
try
{
//contents of using block
}
finally
{
((IDisposable)yourObj).Dispose();
}
Run Code Online (Sandbox Code Playgroud)
通过将Dispose()通话的finally块,它可以确保Dispose被永远叫做-当然,除非异常发生在实例化的网站,因为出现这种情况外try.
重要的是要记住,这using不是一种特殊的运算符或构造 - 它只是编译器替换的东西,它稍微有些迟钝.
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |