关闭并处理 - 调用哪个? [英] Close and Dispose - which to call?

查看:28
本文介绍了关闭并处理 - 调用哪个?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

已阅读主题 SqlCommand.Dispose 足够了吗?关闭和处理 WCF 服务 我想知道 SqlConnection 等类或从 Stream 继承的几个类之一如果我关闭 Dispose 而不是 Close 有关系吗?

Having read the threads Is SqlCommand.Dispose enough? and Closing and Disposing a WCF Service I am wondering for classes such as SqlConnection or one of the several classes inheriting from the Stream class does it matter if I close Dispose rather than Close?

推荐答案

我想澄清一下这个情况.

根据 Microsoft 指南,在合适的地方提供 Close 方法是一种很好的做法.这里框架设计指南

I want to clarify this situation.

According to Microsoft guidelines, it's a good practice to provide Close method where suitable. Here is a citation from Framework design guidelines

考虑提供方法 Close(),除了 Dispose(),如果 close 是该领域的标准术语.这样做时,重要的是使 Close 实现与 Dispose ...

Consider providing method Close(), in addition to the Dispose(), if close is standard terminology in the area. When doing so, it is important that you make the Close implementation identical to Dispose ...

在大多数情况下,CloseDispose 方法是等效的.在SqlConnectionObject的情况下,CloseDispose之间的主要区别是:

In most of cases Close and Dispose methods are equivalent. The main difference between Close and Dispose in the case of SqlConnectionObject is:

一个应用程序可以调用Close 更多不止一次.也不例外生成.

An application can call Close more than one time. No exception is generated.

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

If you called Dispose method SqlConnection object state will be reset. If you try to call any method on disposed SqlConnection object, you will receive exception.

说:

  • 如果使用连接对象一时间,使用Dispose.
  • 如果必须重用连接对象,使用 Close 方法.

这篇关于关闭并处理 - 调用哪个?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆