首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用语句与IDisposable.Dispose()

使用语句与IDisposable.Dispose()
EN

Stack Overflow用户
提问于 2012-06-11 16:51:06
回答 8查看 40.1K关注 0票数 60

我的理解是,一旦代码退出块,.NET中的.NET调用IDisposable对象的Dispose()方法。

using语句还能做什么吗?如果不是,以下两个代码示例似乎实现了完全相同的目标:

代码语言:javascript
运行
复制
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()方法完全相同的结果。

EN

Stack Overflow用户

发布于 2012-06-11 16:52:38

两者的区别在于,如果抛出一个异常

代码语言:javascript
运行
复制
Con.Open()
'do whatever

不会调用Con.Dispose

我不了解VB语法,但是在C#中,等价的代码应该是

代码语言:javascript
运行
复制
try
{
    con = new Connection();
    // Do whatever
}
finally
{
    if (con != null) con.Dispose();
}
票数 6
EN
查看全部 8 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10984336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档