我最近一直在使用Using,但我想知道它与明确调用.Dispose()有什么不同.例如,之间的区别是:
using (DisposableTest obj = new DisposableTest()) { /* Some code */ }
Run Code Online (Sandbox Code Playgroud)
和
DisposableTest obj = new DisposableTest();
// Some code
obj.Dispose();
Run Code Online (Sandbox Code Playgroud)
假设DisposableTest实现IDisposable?
它们有两种不同之处:
using 创建一个新的范围.
using调用.Dispose()无论控件如何离开块(如果该对象在该点不为空).它与编写一个try/ finally构造相同,它.Dispose()在finally块中放置"if not null then " ,但是以表示intent的格式.
它存在,以便如果控制以任何方式离开块(发生异常return或break遇到或遇到),.Dispose()仍然会调用它.它也更具表现力,因为它更好地表明程序员对此案例的意图而不是通用try/ finally构造.
| 归档时间: |
|
| 查看次数: |
2750 次 |
| 最近记录: |