补充: 这个类继承Idisposable接口
解决方案 »
- 初学:返回xml字符串的处理问题?
- 怎么修改标题栏上最大化或最小化的背景图片或增加一个控件?
- 大家在实际的WINFORM项目中都是使用什么表格控件的?
- 关于OleDbConnection.GetOleDbSchemaTable方法取Sheet名
- 求助啊~~C#怎样实时监听外网的连接状况,在外网掉线的时候提示?
- 请问大家一个.NET报错的问题?
- 求助!!!com元件不能使用
- 问个Bitmap的SetPixel的问题
- 在winform下 如何屏蔽鼠标右键功能
- 请问高手Session一样功能,但只在一个页面存在的是什么?急用!!!!
- 兄弟在做pop3的接受程序时!!遇到需要认证的!!如163.com总是在
- 急!!!!如果在DataGrid中同时显示三个表!!!!
Good Luck!
{
private DataSet DS ;
private DataView DV ;
public Test1()
{
...
} ... public DataView myView
{
get { return DV;}
set { DV = value ;}
} ...
...
...
}是不是有必要继承Idisposable接口,并实现dispose方法?如下所示:public class Test1 : Idisposable
{
private DataSet DS ;
private DataView DV ; protected override void Dispose( bool disposing )
{
base.Dispose( disposing );
} public Test1()
{
...
} ... public DataView myView
{
get { return DV;}
set { DV = value ;}
} ...
...
...
}谢谢指教!!!!!
你可以在dispose中释放你用到的对象的实例.
首先,object类没有定义dispose方法(这和Delphi不同).
第二:IDisposable中Dispose的定义是这样的:[C#]
void Dispose();所以你的做法有点错误哦:)
第三:这里有个效率问题,.net帮助中是这样说的:
类型的 Dispose 方法应该释放它拥有的所有资源。它还应该通过调用其父类型的 Dispose 方法释放其基类型拥有的所有资源。该父类型的 Dispose 方法应该释放它拥有的所有资源并同样也调用其父类型的 Dispose 方法,从而在整个基类型层次结构中传播该模式。要确保始终正确地清理资源,Dispose 方法应该可以被多次安全调用而不引发任何异常。 Dispose 方法应该为它处置的对象调用 GC.SuppressFinalize 方法。如果对象当前在终止队列中,GC.SuppressFinalize 防止其 Finalize 方法被调用。请记住,执行 Finalize 方法会大大减损性能。如果您的 Dispose 方法已经完成了清理对象的工作,那么垃圾回收器就不必调用对象的 Finalize 方法了。好了,有了这些话,就可以请出我们的代码了:) public void Dispose() //接口实现
{
Dispose(true);
// 防止垃圾回收站重新调用!
GC.SuppressFinalize(this);
} protected virtual void Dispose(bool disposing)
{
//....
} ~BaseResource()
{
Dispose(false);
}详情请参考:ms-help://MS.VSCC/MS.MSDNVS.2052/cpguide/html/cpconimplementingdisposemethod.htmGood Luck!