3

我知道将 IDbConnection 对象包装在 using 块中可确保调用 Dispose 并释放它正在使用的资源。话虽如此,我是否还需要在 using 块中包装 IDbCommand 和 IDataReader,或者只是包装连接对象就足够了。谢谢。

4

2 回答 2

2

有许多简单的方法可以在不查阅文档的情况下为任何给定对象找出答案:

  1. 如果你将它包装在一个using块中而它不是IDisposable,你会得到一个语法错误。
  2. 如果你的类有一个.Dispose方法(在 Intellisense 中很容易检查),那么你应该包装它。
  3. 如果您的类实现IDisposable(通过“转到定义”或 VS 中的新“窥视”功能轻松检查),您应该包装它。

或者,作为示例,您可以从MSDN 文档中看到IDbCommand实现IDisposable,因此应该使用using块进行处理。

于 2014-01-29T17:16:11.513 回答
1

最佳做法是将任何范围内的 IDisposable 对象包装在 using 块中。当您编写代码以与接口交互时尤其如此,因为您不了解底层实现的细节;在某些情况下可能很重要。

于 2014-01-29T17:12:30.837 回答