派生类的名字可以考虑以基类名字作为后缀。这带来的好处是,从类型的名字上我们就知道它包含在哪一个继承体系中。
Exception及其子类就是这样一个典型的例子。所有的异常都应该继承自System.Exception。如果在VS中输入Exception,再按Tab键,会自动生成如下代码:
[Serializable]
public class MyException : Exception
{
//
// For guidelines regarding the creation of new exception types, see
// http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconerrorraisinghandlingguidelines.asp
// and
// http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp07192001.asp
//
public MyException()
{
}
public MyException(string message) : base(message)
{
}
public MyException(string message, Exception inner) : base(message, inner)
{
}
protected MyException(
SerializationInfo info,
StreamingContext context) : base(info, context)
{
}
}
从这里我们可以看出,微软支持让派生类的名字以基类名字作为后缀。
在FCL中,这类常用的例子还有Attribute、EventArgs等。