小编典典

Close and Dispose - 调用哪个?

all

阅读了线程SqlCommand.Dispose 足够了吗?以及关闭和处理 WCF服务我想知道诸如 SqlConnection 之类的类或从 Stream 类继承的几个类之一,如果我关闭 Dispose 而不是
Close,这有关系吗?


阅读 40

收藏
2022-08-20

共1个答案

小编典典

我想澄清这种情况。

根据 Microsoft 指南,Close在合适的地方提供方法是一种很好的做法。

考虑提供 method Close(),除了Dispose(), if close
是该地区的标准术语。这样做时,重要的是使Close实现与Dispose…相同

在大多数情况下CloseDispose方法是等价的。和之间的 主要区别
是:Close``Dispose``SqlConnectionObject

一个应用程序可以调用Close多次。不会产生异常。

如果你调用了Dispose方法 SqlConnection对象的状态将被重置。如果您尝试调用已处置SqlConnection
对象的任何方法,您将收到异常。

那说:

  • 如果您使用一次连接对象,请使用Dispose. 一个using块将确保即使在发生异常时也会调用它。
  • 如果必须重用连接对象,请使用Close方法。
2022-08-20