【发布时间】:2011-06-15 21:52:48
【问题描述】:
以下面的场景为例。我有多个 ASPX 页面。 Login、Logout、Main、Messages 等……当然,它们都继承自 System.Web.UI.Page。对于所有页面,我想覆盖 Page 类的 Render 方法。我可以像这样轻松地将相同的代码复制并粘贴到每个页面中:
protected override void Render(HtmlTextWriter writer)
{
//Code Logic Here
}
但如果我有很多页面,比如说 20 个,维护每个页面中的代码可能会非常耗时且容易出错。
这让我思考了一下,我想好吧,让我们试试这个...覆盖每个页面中的函数,但调用一个静态函数。这样,更改静态函数将导致每个页面都发生更改。哪个工作正常......但它并不是很好和干净,必须在每一页上都像这样覆盖。有人对此有任何想法或想法吗?也许我忽略了一些简单的事情?谢谢
编辑:有些页面使用 System.Web.UI.Page 类,有些页面继承自另一个名为 ModifiedPage 的类,后者继承并覆盖了 System.Web.UI.Page 类的其他功能。所以它并不像从一个类中继承所有页面那么简单。
EDIT2:所有页面都需要这种行为,有些页面已经派生自另一个类,我无法更改该其他类的实现或继承层次结构。
【问题讨论】:
-
使用继承自 System.Web.UI.Page 的基类,然后将其用于所有页面
-
编辑:有些页面使用 System.Web.UI.Page 类,有些页面继承自另一个名为 ModifiedPage 的类,该类继承并覆盖 System.Web.UI.Page 类的其他功能。所以它不像从一个类中继承所有页面那么简单。
标签: c# .net asp.net overriding multiple-inheritance