Effective C# 原则35:选择重写函数而不是使用事件句柄
2009-02-19 08:15:54 来源:WEB开发网很多.Net类提供了两种不同的方法来控制一些系统的事件。那就是,要么添加一个事件句柄;要么重写基类的虚函数。为什么要提供两个方法来完成同样的事情呢?其实很简单,那就是因为不同的情况下要调用为的方法。在派生类的内部,你应该总是重写虚函数。而对于你的用户,则应该限制他们只使用句柄来响应一些不相关的对象上的事件。
例如你很了一个很不错的Windows应用程序,它要响应鼠标点下的事件。在你的窗体类中,你可以选择重写OnMouseDown()方法:
public class MyForm : Form
{
// Other code elided.
protected override void OnMouseDown(
MouseEventArgs e )
{
try {
HandleMouseDown( e );
} catch ( Exception e1 )
{
// add specific error handling here.
}
// *almost always* call base class to let
// other event handlers process message.
// Users of your class expect it.
base.OnMouseDown( e );
}
}
或者你可以添加一个事件句柄:
public class MyForm : Form
{
// Other code elided.
public MyForm( )
{
this.MouseDown += new
MouseEventHandler( this.MouseDownHandler );
}
private void MouseDownHandler( object sender,
MouseEventArgs e )
{
try {
HandleMouseDown( e );
} catch ( Exception e1 )
{
// add specific error handling here.
}
}
}
- ››选择好的广告联盟:选择广告联盟理解掌握的六大绝招...
- ››选择谁? 揭秘90后必备的音乐播放器
- ››选择性关闭Win 7视频预览 节约系统资源
- ››选择适合的SRAM存储器的技巧
- ››Effective C# 原则40:根据需求选择集合
- ››Effective C# 原则41:选择DataSet而不是自定义的...
- ››Effective C# 原则42:使用特性进行简单的反射
- ››Effective C# 原则43:请勿滥用反射
- ››Effective C# 原则44:创建应用程序特定的异常类
- ››Effective C# 第6章:杂项
- ››Effective C# 原则45:选择强异常来保护程序
- ››Effective C# 原则47:选择安全的代码
更多精彩
赞助商链接