C# Close() Dispose()
C#中Close()方法和DIspose()方法在某些类中作用是一样的,但是在某些类中,Displose又比Close强大一些。
作用相同时:
在Mutex中,实例化了一个Mutex对象后,使用Close 方法和Dispose 方法达到的效果都是一样的,使用后都无法继续使用相关的类了。官方的注释如下:
//
// 摘要:
// 释放由当前 System.Threading.WaitHandle 占用的所有资源。
public virtual void Close();
//
// 摘要:
// 释放 System.Threading.WaitHandle 类的当前实例所使用的所有资源。
public void Dispose();
在SqlConnection中,使用Close后,还能用Open打开,但是使用Dispose后,就彻底不能使用了。这里的Close是经过重写的,功能已经改变了,如下:
//
// 摘要:
// 关闭与数据库之间的连接。 此方法是关闭任何打开连接的首选方法。
//
// 异常:
// T:System.Data.SqlClient.SqlException:
// 打开连接时出现的连接级别的错误。
public override void Close();
//
// 摘要:
// 释放由 System.ComponentModel.Component 使用的所有资源。
public void Dispose();
所以在使用的时候还是要区分好这两个方法的用途,释放资源的首选还是Dispose,它一般是已经包含了close操作