日期:2014-05-19  浏览次数:21203 次

自定义的类使用后如何释放?
如题
例如:CLASS   a   =   new   CLASS(参数)
CLASS是一个自定义类
请问如何释放a?

------解决方案--------------------
一般情況下系統會調用GC來釋放

不過可以繼承IDispose接口來實現,在這個接口的實現方法中,對類中的對象進行Dispose和一些關閉操作,這樣系統在釋放的時候就自動調用DISPOSE或者可以自己用代碼調用
------解决方案--------------------
一般来讲,在.net框架里你不需要手动去释放你的对象,因为GC会替你做这件事。
但是当类里面有非托管资源时,在这个类被使用(也就是实例化)后,你如果不再使用它,需要把那些非托管资源释放。所谓的非托管资源,就是像数据库连接、文件系统这样的资源。
什么时间释放,怎么释放呢?
当你不再使用这些资源时,你就应该释放他们。但是如何释放呢?
办法1,实现IDisposable接口,里面只有一个方法Dispose。这样你就可以使用using关键词来使用这个类,当达到using语句块的末尾或者在using语句块内发生异常跳出时,CLR会自动调用Dispose方法。
方法2,在类里面写个释放方法,在不确定不再使用非托管资源时,手动调用释放方法。你也可以实现析构函数,然后在这里调用释放方法。建议依然实现IDisposable接口。