小编典典

使用语句与IDisposable.Dispose()

c#

据我了解,一旦代码退出代码块,.NET 中的using语句就会调用IDisposable对象的Dispose()方法。

using语句还有其他作用吗?如果没有,似乎以下两个代码示例可以实现完全相同的效果:

Using Con as New Connection()
    Con.Open()
    'do whatever '
End Using

Dim Con as New Connection()
Con.Open()
'do whatever '
Con.Dispose()

无论谁确认我是对的,或者指出我错了并解释原因,我都会给最好的答案。请记住,我知道某些类 可以 在其Dispose()方法中 做不同的事情
。这个问题是关于using语句是否达到与调用对象的Dispose()方法完全相同的结果。


阅读 455

收藏
2020-05-19

共1个答案

小编典典

using 基本上等于:

try
{
  // code
}
finally
{
  obj.Dispose();
}

因此,Dispose()即使在块中的代码中引发了未处理的异常,它也具有调用的好处。

2020-05-19