SQL Server 基础知识

您所在的位置:网站首页 dispose什么意思 SQL Server 基础知识

SQL Server 基础知识

2024-07-03 02:39| 来源: 网络整理| 查看: 265

.Clear()的比较没有什么意思,因为只是把DataTable清空而已,在堆中任然分配内存,一般要比较也是比较Close()方法,不过DataTable没有这个方法

至于Dispose和null的区别就很有意思了

首先DataTable dt = new DataTable();你的知道dt在栈上,指向托管堆的 new DataTable()对象

而dt = null;的意思是让 dt不指向任何对象,此时 new DataTable()这个真实的对象还在内存中,等待GC的回收(究竟什么时候回收是垃圾回收机制的问题)

而dt.Dispose();的意思是销毁 new DataTable();这个对象,但dt仍然指向这个被销毁的对象的地址;所以此时dt是不为null的,但它也无法使用

自己可以看下下面代码的结果 DataTable dt = new DataTable(); dt.Dispose(); MessageBox.Show((dt == null).ToString());

在实际开发中,一般将 dt设置为null就足够了,可以等待GC的回收。如果要使用Dispose()方法,一般是

using(DataTable dt = new DataTable()){

}

这样会在大括号结束的时候隐式地调用 Dispose()方法,而且dt成为一个局部变量马上出了作用域,也不会有调用错误



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3