高手请教:一个关于方法重写的问题

vv_80days 2008-07-17 11:41:48
我们再重写一个父类的方法时,VS自动生成的方法存根总会默认一些代码,譬如我现在要写一个控件,重写Control类的Render方法,VS默认会生成的代码如下:
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
}

我想问一下这里的base.Render(writer);是不是必须要加的啊,我不加也可以啊。
在什么情况下必须要加上,如果加上的话,自己重写的代码应该放在这句的前面还是后面???

谢谢
...全文
64 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhnzzy 2008-07-17
  • 打赏
  • 举报
回复
前后都可以
zhnzzy 2008-07-17
  • 打赏
  • 举报
回复
一般需要加,加了才能实现父类功能!一般我们写总是希望增加一些父类没有的功能的,显然还希望保留父类基本功能
jzywh 2008-07-17
  • 打赏
  • 举报
回复
看你实际需要了
amandag 2008-07-17
  • 打赏
  • 举报
回复
在什么情况下必须要加上,如果加上的话,自己重写的代码应该放在这句的前面还是后面???
==
一般都要加,因为一般我们总是要使用父类的功能
自己重写的代码应该放在这句的后面
vv_80days 2008-07-17
  • 打赏
  • 举报
回复
但是我试过了,不加也没有影响?有人能详细解释一下吗
xhan2000 2008-07-17
  • 打赏
  • 举报
回复
base.Render(writer); 调用父类的被重写的方法

一般写自定义控件都是扩展功能,需要加上
hubblebubblepig 2008-07-17
  • 打赏
  • 举报
回复
只是默认执行父类的方法
既然override了你怎么写都行 哪怕只是hello world呢
Jinglecat 2008-07-17
  • 打赏
  • 举报
回复
1.
单从 override 角度来说,他是 it depends on 的,
主要看基类方法的说明。

2.
在 ASP.NET 领域的 override 比如 扩展 Control,Page.OnLoad/OnInit

都要调用父类的方法,否则会带来意想不到的结果(与ASP.NET声明周期有关),这是MSDN文档以说明的。


lixueming3000 2008-07-17
  • 打赏
  • 举报
回复
主要看你想实现什么功能,如果不加的话,只实现了你写代码的那里的功能,而不能用他父类的方法
北京的雾霾天 2008-07-17
  • 打赏
  • 举报
回复
要不是留Base的方法取决于特定的方法本身,并不能说要或不要。甚至有的时候要或不要、自己代码在前在后功能是不一样的。这要看文档是怎样写的了。比如像WndProc这样的方法如果不调用base.WndProc可能程序都运行不起来了。要看文档,文档!
JeffChung 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xhan2000 的回复:]
base.Render(writer); 调用父类的被重写的方法

一般写自定义控件都是扩展功能,需要加上
[/Quote]
minhua1983 2008-07-17
  • 打赏
  • 举报
回复
Render()被你重写了,里面的执行内容随便你写什么.

61,819

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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