好困惑啊! 这段自动生成的代码有什么用处? 补充: 这个类继承Idisposable接口 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.components 自始至终不都是 null,你没有看到它创建,只是因为你没有使用到。如果要使用到,请在Form上放置非可视控件。那么在InitComponent中就会创建该属性,并且会将新创建的控件加入其中。因此这个属性是用来管理控件的,不需要自己维护。2 Dispose是Object类在释放的时候自动调用的,因此不需要在Form类中手动调用。3 MS引入垃圾回收并不是第一个这样做的人!另外,垃圾回收并不是在资源紧张时才调用。垃圾回收分三个层次。每个层次定义的触发条件不一样。而垃圾回收最大的好处就是处理了未引用资源的释放问题。没有内存泄漏。4.自己写一个类,怎么都可以。一般用到资源,才需要在Dispose中写代码,比如打开文件等等。晚安:)Good Luck! 谢谢xiammy!!!假如我自已写一个类,包括一个DataSet和一个视图public class Test1{ 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 ;} } ... ... ...}谢谢指教!!!!! 是不是有必要继承Idisposable接口,并实现dispose方法?如下所示:可以的.你可以在dispose中释放你用到的对象的实例. 实现Idisposable接口用的。 这个问题我看可以这样理解!首先,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! C#怎么求一个txt文件中的最长子串 线程的使用--执行 CreateHandle() 时无法调用值 Dispose()。 求正则,html不规则table.... c#压缩!!! 求一个在xml中寻找节点的方法 急~ 关于在同类中调用其它函数的问题 这样的接口定义为什么会报错?? c#中用windows media player插件制作播放器,播放图片怎么设置速度 奇怪的问题,请来看看! 为什么装不上vs7 兄弟在做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!