建议137:委托和事件类型应添加上级后缀
委托类型本身是一个类,考虑让派生类的名字以基类名字作为后缀。事件类型是一类特殊的委托,所以事件类型也遵循本建议。
委托和事件的正确的命名方式有:
public delegate void HttpContinueDelegate(int statusCode, System.Net.WebHeaderCollection httpHeaders); public delegate bool ValidateValueCallback(object value); public delegate void AsyncCallback(IAsyncResult ar); public delegate void PropertyChangedCallback(DependencyObject d,DependencyPropertyChangedEventArgs e); public delegate void MouseEventHandler(object sender, MouseEventArgs e); public delegate void SizeChangedEventHandler(object sener, SizeChangedEventArgs e); public delegate void UnhandledExceptionEventHandler(object sender, UnhandledExceptionEventArgs e);
若果用传统方式,我们可能看不出来这些类型是有基类的,但是委托和事件的关键字delegate和event已经指明了后面类型的基类是Delegate。委托按照委托类型的作用又单纯分为Delegate结尾和CallBack结尾,我们在声明委托的时候一定要注意区分这一点。如果委托用于回调性质,则使用CallBack结尾。
委托和事件不妥的命名方式,就是从命名上根本看不出它们的类型,如下:
public delegate void DoSomething(int a, int b); public delegate void MouseClick(int a, int b);
转自:《编写高质量代码改善C#程序的157个建议》陆敏技