我正在努力理解这个问题。根据关于
使用
但是,在关于
在受处理的异常中,相关联的finally块保证被运行。然而,如果异常未受处理,则执行finally块取决于异常取消操作的触发方式。
那么,如果
Using
语句的此页面所述:使用
Using
语句可以确保在调用对象方法时发生异常时也会调用Dispose方法。您可以通过将对象放在try块内,然后在finally块中调用Dispose来实现相同的结果;实际上,这就是编译器如何将Using语句转换的方式。但是,在关于
Try-Finally
块的此页面中指出:在受处理的异常中,相关联的finally块保证被运行。然而,如果异常未受处理,则执行finally块取决于异常取消操作的触发方式。
那么,如果
Using
语句被转换为不保证调用finally语句的Try-Finally
语句,它怎么能保证在发生异常时调用Dispose方法呢?