Dispose和Close有什么区别?

时间:2010-07-09 22:08:30

标签: c# dispose idisposable

  

可能重复:
  Close and Dispose - which to call?

您好,

阅读完一些网页后,我仍然不明白C#中Dispose和Close方法的区别。

我们来一个样本:

using (SqlConnection sqlConnection = new SqlConnection())
{
    // Execute an insert statement (no breaks, exceptions, returns, etc.)
}

和第二个:

SqlConnection sqlConnection = new SqlConnection();
// Execute an insert statement (no breaks, exceptions, returns, etc.)
sqlConnection.Close();

这两段代码是否相似?两者都只是为了方便起见(因为有些情况using不是解决方案吗?或者行为有差异?

那么为什么有些类会提供Close方法,何时应该在我创建的Close类中添加IDisposable方法?

1 个答案:

答案 0 :(得分:3)

您的两个代码段是等效的。

实现IDisposable并公开Close的.NET类,为了使Close方法具有更友好的名称而增加了便利性。通常一个人打电话给另一个人。

如果您实施自己的一次性课程,则无需添加Close方法,除非您想要一个。{/ p>