Dispose()销毁对象,垃圾回收机制。 using(SqlConnection conn = new SqlConnection(ConnStr)) { 这样写会自动垃圾回收。 }
C#是有垃圾回收机制的,可以对托管资源进行自动管理。比如你创建一个数组:
int[] a = new int[10];
然后将a设为空指针:a = null;
这样,C#的垃圾回收机制会在特定时候对其进行回收,不需要我们参与。
对于非托管资源(数据库连接、网络连接等),是需要手动调用Dispose方法,或者其他相关方法来释放资源的。一般非托管资源会实现IDisposable接口,以提供Dispose方法,只要调用此方法,就可以释放非托管资源。或者可以使用using语句,这个语句会自动调用dispose方法:
using(sqlconnection conn = new sqlconnection())
{
// 在退出语句块之前会自动调用dispose方法
}