我最近一直在使用Using,但我想知道它与显式调用.Dispose() 有什么不同。例如,以下之间有什么区别:
using (DisposableTest obj = new DisposableTest()) { /* Some code */ }
and
DisposableTest obj = new DisposableTest();
// Some code
obj.Dispose();
假设 DisposableTest 实现 IDisposable ?
它们有几个不同之处:
using
创建一个新的范围。
using
calls .Dispose()
无论控制如何离开块(如果此时对象不为空)。这与写一个相同try
/finally
构造放置“如果不为空则.Dispose()
“ 在里面finally
块,但采用表达意图的格式。
它的存在是为了如果控制以任何方式离开块(发生异常或return
or break
遇到),则.Dispose()
仍然被称为。它也更具表现力,因为它比通用的更好地表明了程序员对于这种情况的意图try
/finally
构造。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)