注释
此内容由 Pearson Education, Inc. 的许可从 框架设计指南:可重用 .NET 库的约定、习惯和模式(第 2 版)重新打印。 该版于2008年出版,此后该书已于 第三版全面修订。 此页上的一些信息可能已过期。
类型由成员组成:方法、属性、事件、构造函数和字段。 以下部分介绍了命名类型成员的准则。
方法的名称
由于方法是采取措施的方法,因此设计准则要求方法名称为谓词或谓词短语。 遵循此准则还可以区分方法名称与属性名称和类型名称,这些名称是名词或形容词短语。
✓ 用谓词或谓词短语为方法命名。
public class String {
public int CompareTo(...);
public string[] Split(...);
public string Trim();
}
属性的名称
与其他成员不同,应为属性提供名词短语或形容词名称。 这是因为属性引用数据,属性的名称反映了这一点。 属性名称总是采用帕斯卡大小写。
✓ 使用名词、名词性短语或形容词为属性命名。
❌ 请勿具有与“Get”方法名称匹配的属性,如以下示例所示:
public string TextWriter { get {...} set {...} }
public string GetTextWriter(int value) { ... }
此模式通常表示该属性实际上应该是一个方法。
✔️ 在为集合属性命名时,应使用描述集合中项的复数短语,而不是单个短语后跟“List”或“Collection”。
✔️ DO 使用肯定短语(CanSeek
而不是 CantSeek
)命名布尔属性。 可根据需要为布尔属性加上前缀 "Is"、"Can" 或 "Has",但仅在其有助于提升属性价值的情况下使用。
✔️ 请考虑为属性提供与其类型相同的名称。
例如,以下属性可以正确获取和设置一个枚举值Color
,因此该属性命名为Color
。
public enum Color {...}
public class Control {
public Color Color { get {...} set {...} }
}
事件名称
事件始终指某些动作,要么是正在发生的动作,要么是已发生的动作。 因此,与方法一样,事件以谓词命名,动词时态用于指示引发事件的时间。
✔️ 使用谓词或谓词短语命名事件。
示例包括 Clicked
、 Painting
、 DroppedDown
等等。
✔️ 为事件命名时,使用当前和过去时态表达前后概念。
例如,在关闭窗口之前引发的 close 事件将被调用 Closing
,并在关闭窗口后引发的一个事件将被调用 Closed
。
❌ 请勿使用“Before”或“After”前缀或后缀来指示事件的前后。 请如上所示使用现在时和过去时。
✔️ 为事件处理程序(用作事件类型的委托)添加“EventHandler”后缀,如以下示例中所示:
public delegate void ClickedEventHandler(object sender, ClickedEventArgs e);
✓ 在事件处理程序中使用名为 sender
和 e
的两个参数。
发送方参数表示引发事件的对象。 发送方参数通常为类型 object
,即使可能采用更具体的类型也是如此。
✔️ 请使用“EventArgs”后缀来命名事件参数类。
字段的名称
字段命名准则适用于静态公共字段和受保护字段。 成员设计准则不允许使用内部和专用字段,并且 成员设计准则不允许公共或受保护的实例字段。
✓ 在字段名称中使用帕斯卡大小写。
✓ 使用名词、名词性短语或形容词为字段命名。
❌ 请勿对字段名称使用前缀。
例如,不要使用“g_”或“s_”来指示静态字段。
部分内容 © 2005, 2009 Microsoft 公司。 保留所有权利。
获得皮尔逊教育公司许可后重印自 框架设计准则:可重用 .NET 库的约定、习惯和模式 ,由 Krzysztof Cwalina 和 Brad Abrams 编写,并作为微软 Windows 开发系列中的出版物之一,于 2008 年 10 月 22 日由 Addison-Wesley Professional 出版。