我最近一直在使用“使用”,但是我想知道它与显式调用.Dispose()有何不同。例如,以下两者之间有什么区别?
using (DisposableTest obj = new DisposableTest()) { /* Some code */ }
和
DisposableTest obj = new DisposableTest();
// Some code
obj.Dispose();
假设DisposableTest实现IDisposable?
它们有两种不同的方式:
using
创建一个新的范围。
using
调用,.Dispose()
无论控件如何离开该块(如果此时对象不为null)。这与编写一个try
/finally
构造将“如果不是null则.Dispose()
”放置在finally
块中,但是以一种表达意图的格式相同。
它存在的原因是,如果控制以任何方式离开该块(发生异常return
或break
遇到或遇到一个异常),.Dispose()
仍会调用。它也更具表现力,因为它比通用try
/finally
构造更好地表明了程序员在这种情况下的意图。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句