中国站长下载-为中国站长提供最好最全的建站资源! 首 页发布资源有事留言繁體中文
设为首页
加入收藏
联系我们
 
您当前的位置:中国站长下载 -> 文章中心 -> 网页编程 -> .NET编程 -> 文章内容  虚拟主机 域名注册 退出登录 用户管理
栏目导航
· ASP编程 · .NET编程
· PHP编程 · JSP编程
· CGI 专区
热门文章
· sndvol32 - sndvol3...
· [组图] FLASH:《大话李白》...
· 个人网站到底能赚多...
· [图文] Rundll.exe是病毒吗...
· [组图] Flash:制作MV
· 价值12万元的网站SE...
· 网站创业者,你需要...
· 一个成功的网站设计...
· [图文] FLASH:韩国导航条解...
· 中国网站的赚钱模式...
相关文章
· [图文] ASP.NET中的Http Ha...
· 在ASP.NET中如何用C...
· 在ASP.Net中应用Jav...
· 在ASP.NET程序中创建...
· [图文] 在ASP.NET中使用SQL...
· 在ASP.NET中跟踪和恢...
· [图文] 单点登录在ASP.NET上...
· 单点登录在ASP.NET上...
· 单点登录在ASP.NET上...
· 在ASP.NET下实现数字...
在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handl
作者:不详  来源:不详  发布时间:2006-8-14 8:26:25  发布人:chinazhan

 减小字体 增大字体

     English Version: http://dflying.dflying.net/1/archive/101_prefer_overrides_to_event_handlers_in_aspnet_page.html
  
  这个是我们熟悉的Page_Load()方法。实际上它是一个Event Handler,当定义在System.Web.UI.Page中的Load事件触发时,它开始执行。
  
  // use event handler
  protected void Page_Load(object sender, EventArgs e)
  {
   // logic here
  }
  
  
  
  
  这个是System.Web.UI.Page类中OnLoad()方法的Override。 // use override
  protected override void OnLoad(EventArgs e)
  {
   // logic here
   base.OnLoad(e);
  }
  虽然上述两种做法都能完成相同的功能,但是我推荐使用Override的做法。
  
  首先,事件处理机制是用来实现独立的对象之间通信的。例如,当一个Button被点击时,页面可以通过事件处理机制得知这一消息并进行处理。但在这个例子中,Load事件定义在System.Web.UI.Page中,本身也是我们页面中的一部分。这样在一个类的内部发出事件并又在其本身处理这个事件的做法将显得很奇怪。
  
  其次,效率上考虑,事件处理不及Override。这是由.NET Framework的实现所决定的并且我们都已经了解。
  
  还有,使用事件时需要维护两个地方:事件处理方法的加载(attach)以及事件处理函数本身的定义。虽然ASP.NET 2.0已经提供了一些预定义的事件处理方法名,但还有好多开发者在使用ASP.NET 1.1。而使用Override则只需要维护Override函数本身。
  
  当然,事件处理机制有它自身的好处,比如可以很方便的在运行时指定事件处理方法,允许分布在各处的多个事件处理方法依次执行。但在ASP.NET页面中我们不会用到这些特性。我们总会有一个方法来定义页面被加载的行为,我们也不会有多个Page_Load()方法在一个页面中出现。
  
  更加泛化一点,不单单在ASP.NET页面中,其他情况下我们也应该尽可能的使用Override而不是Event。
  使用Override的时候需要注意的是不要忘记调用基类的方法(Visual Studio会替你做好的)。
  
  
  
  出处:Dflying Chen BLOG
  
  
  
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。

 
[] [返回上一页] [打 印] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
中国站长下载
中国站长下载

本页只接受PR>=4 IT类站点连接,申请连接,谢谢您们的支持!希望我们的下载站能够真正帮到中国的站长们!
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图
Copyright © 2005-2006 ChinaZhan.Net. All Rights Reserved .