override作用是什么?

OROCHIORI 2010-01-04 01:43:23

protected override void Dispose( bool disposing )
{
if( disposing )
{
if( XXX != null )
{
XXX = null;
}
if( YYY != null )
{
YYY = null;
}
}
base.Dispose( disposing );
}

从代码来看好像是程序在断开之后清理一下内存什么的,但不了解他的工作原理,比如程序在什么时候触发这个方法。
如果是一个"断开"按钮中写入这些代码还是可以理解的但查了下MSDN看的似懂非懂 它的作用是什么 以及程序在什么条件下触发这个方法.
因为在程序中别的地方并没有引用该方法!
希望高手可以指点
谢谢!!!
...全文
744 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
riyuehuan 2011-01-20
  • 打赏
  • 举报
回复
正好用到!
OROCHIORI 2010-01-04
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 linux7985 的回复:]
Override主要是提供派生类对基类方法的新实现,重写的基类方法必须和Override的方法具有相同的签名
Dispose通知垃圾回收器可以释放资源

当你的这个类,放在using里面 new 的时候

using(A类 a = new A类)
{
...
}
在大括号之后,系统会自动调用你的 Despose方法。
[/Quote]
谢谢!!解释的很透彻
烈火蜓蜻 2010-01-04
  • 打赏
  • 举报
回复

Override主要是提供派生类对基类方法的新实现,重写的基类方法必须和Override的方法具有相同的签名
Dispose通知垃圾回收器可以释放资源

当你的这个类,放在using里面 new 的时候

using(A类 a = new A类)
{
...
}

在大括号之后,系统会自动调用你的 Despose方法。
OROCHIORI 2010-01-04
  • 打赏
  • 举报
回复
结贴了 感谢楼上各位指点!!新年快乐!!!
OROCHIORI 2010-01-04
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 vrhero 的回复:]
引用 8 楼 jiyuanlong 的回复:
override关键字用于重写基类的Dispose方法。Dispose在对象不再被引用,垃圾回收(GC)时被垃圾收集器调用。

前一后对,后一句错...Dispose方法不会被GC调用,需要代码显式调用...而且很明显这段代码里的Dispose方法和IDisposable接口没有关系...

所以你想知道“它的作用是什么 以及程序在什么条件下触发这个方法”得去看此方法所在类的基类是怎么写的...“在程序中别的地方并没有引用(应该是调用)该方法!”就是override的作用之一,去看看MSDN,搞清楚override和virtual方法的关系...
[/Quote]
说的对啊 程序里有许多的protected virtual void ....
vrhero 2010-01-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jiyuanlong 的回复:]
override关键字用于重写基类的Dispose方法。Dispose在对象不再被引用,垃圾回收(GC)时被垃圾收集器调用。
[/Quote]
前一后对,后一句错...Dispose方法不会被GC调用,需要代码显式调用...而且很明显这段代码里的Dispose方法和IDisposable接口没有关系...

所以你想知道“它的作用是什么 以及程序在什么条件下触发这个方法”得去看此方法所在类的基类是怎么写的...“在程序中别的地方并没有引用(应该是调用)该方法!”就是override的作用之一,去看看MSDN,搞清楚override和virtual方法的关系...
ws_hgo 2010-01-04
  • 打赏
  • 举报
回复
重写基类的方法

悔说话的哑巴 2010-01-04
  • 打赏
  • 举报
回复
override关键字用于重写基类的Dispose方法。Dispose在对象不再被引用,垃圾回收(GC)时被垃圾收集器调用。
悔说话的哑巴 2010-01-04
  • 打赏
  • 举报
回复
override是重写的意思,即重写父类中的方法。
cszg_zjy 2010-01-04
  • 打赏
  • 举报
回复
重写基类的方法,如果该方法在基类中是虚方法或者抽象方法的话。
元宇宙之家 2010-01-04
  • 打赏
  • 举报
回复
override关键字用于重写基类的Dispose方法。Dispose在对象不再被引用,垃圾回收(GC)时被垃圾收集器调用。
询问 2010-01-04
  • 打赏
  • 举报
回复
浪子-无悔 2010-01-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ctwei86 的回复:]
晕倒!
感觉楼主可能刚开始接触C#吗?
override是重写的意思,即重写父类中的方法。
[/Quote]
正解。。。
ctwei86 2010-01-04
  • 打赏
  • 举报
回复
Dispose()方法是用来清理资源的,但是如果你不显示的去调用,GC自己也会去处理,但是作为一个习惯,最好是在使用资源的对象用完之后调用下该对象的Dispose()方法。
xuzysun 2010-01-04
  • 打赏
  • 举报
回复
覆盖父类中对应的方法
wuyq11 2010-01-04
  • 打赏
  • 举报
回复
Override主要是提供派生类对基类方法的新实现,重写的基类方法必须和Override的方法具有相同的签名
Dispose通知垃圾回收器可以释放资源
  • 打赏
  • 举报
回复
赞同
ctwei86 2010-01-04
  • 打赏
  • 举报
回复
晕倒!
感觉楼主可能刚开始接触C#吗?
override是重写的意思,即重写父类中的方法。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧