请教关于析构方法 ~类名() 和Dispose()的差别问题 我本人在开发中通常使用Dispose()方法,即实现IDisposed接口。但在收集的一些程序中看到采用~类名()的方式来做,这象是C++中的用法。由于本人能力不足,搞不清这2种方式到底有什么差别,哪个好些。请各位达人指教。谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ~类名,这个是CLR垃圾回收调用的方法,你调不了的.IDispose的接口是你可以调用的.简单点说,就是你想立刻垃圾回收(而你不用GC.xxx方法的话),你可以实现IDispose接口,这样写更标准.NET设计规范.其中还有个flag标识,如果是系统自动回收...等等.NET设计规范里面有这方面的说明,你可以看下,我说的不好. 如果你的类中没有用到非托管的资源,则不需要实现IDisposed接口,也不需要调用Dispose方法。只有使用到了非托管的资源的时候,比如画刷、画笔、文件操作、数据库操作等的时候才需要实现IDisposed接口或调用基类的Dispose方法。你可以提供析构函数或Finalize方法。Finalize 方法或析构函数是在未能调用 Dispose 的情况下充当防护措施。Finalize 方法调用带有参数的 Dispose 方法,同时传递 false。不应在 Finalize 方法内重新创建 Dispose 清理代码。调用 Dispose(false) 可以优化代码的可读性和可维护性。 若要在 C# 中实现 Finalize 方法,您必须使用析构函数语法。 关于Datatable的一些操作 DataTable 获取数据(要求得到原类型) 获得系统最后一次操作时间 郁闷的datagridview 关于使用DLL里面的资源问题,在线等! 用C#怎么实现查询结果的打印??求助求助 熱門問題,請網絡高手賜教: 如何用Tcp實現網絡穿透? (重金懸賞) 数组排序的问题 关于C#+ASP.NET入门 C#调用通用dll的问题 按钮问题 WinFrom 系统托盘上的图标闪动?
IDispose的接口是你可以调用的.简单点说,就是你想立刻垃圾回收(而你不用GC.xxx方法的话),你可以实现IDispose接口,这样写更标准.NET设计规范.其中还有个flag标识,如果是系统自动回收...等等.NET设计规范里面有这方面的说明,你可以看下,我说的不好.