选择显示字体大小

在asp.net页面中推荐使用覆写(override)而不是事件处理(event handler)

english version: http://dflying.dflying.net/1/archive/101_prefer_overrides_to_event_handlers_in_as.net_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


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons