当前位置:  开发笔记 > 编程语言 > 正文

使用语句和Close方法

如何解决《使用语句和Close方法》经验,为你挑选了2个好方法。

当与数据库连接对象一起使用时,using语句是否真的调用close方法?MSDN文档说它确保调用Dispose方法,但没有提到close.我看到Stack Overflow上的帖子,人们说它同时做到了.有人在微软或其他有效的证据中以这种或那种方式得到具体答案吗?



1> DancesWithBa..:

这是SqlConnection类的"Dispose"方法:

protected override void Dispose(bool disposing)
{
    if (disposing)
    {
        this._userConnectionOptions = null;
        this._poolGroup = null;
        this.Close();
    }
    this.DisposeMe(disposing);
    base.Dispose(disposing);
}

正如你所看到的,它确实调用了Close()



2> CMS..:

如果你使用一个using语句连接将被关闭,那么实现IDisposable的对象在被垃圾收集后仍然保持打开是没有意义的...

但是,Close()Dispose()不一样的东西:

Dispose()总是Close()隐含地打电话.

Dispose()清除ConnectionString,Close()没有.

如果您要再次重新打开连接,Close()则不应该Dispose()

如果你选择使用Dispose()不要直接调用它,using声明它是最好的方法.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有