类型成员的名称

注释

此内容由 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 {...} }
}

事件名称

事件始终指某些动作,要么是正在发生的动作,要么是已发生的动作。 因此,与方法一样,事件以谓词命名,动词时态用于指示引发事件的时间。

✔️ 使用谓词或谓词短语命名事件。

示例包括 ClickedPaintingDroppedDown等等。

✔️ 为事件命名时,使用当前和过去时态表达前后概念。

例如,在关闭窗口之前引发的 close 事件将被调用 Closing,并在关闭窗口后引发的一个事件将被调用 Closed

❌ 请勿使用“Before”或“After”前缀或后缀来指示事件的前后。 请如上所示使用现在时和过去时。

✔️ 为事件处理程序(用作事件类型的委托)添加“EventHandler”后缀,如以下示例中所示:

public delegate void ClickedEventHandler(object sender, ClickedEventArgs e);

✓ 在事件处理程序中使用名为 sendere 的两个参数。

发送方参数表示引发事件的对象。 发送方参数通常为类型 object,即使可能采用更具体的类型也是如此。

✔️ 请使用“EventArgs”后缀来命名事件参数类。

字段的名称

字段命名准则适用于静态公共字段和受保护字段。 成员设计准则不允许使用内部和专用字段,并且 成员设计准则不允许公共或受保护的实例字段。

✓ 在字段名称中使用帕斯卡大小写。

✓ 使用名词、名词性短语或形容词为字段命名。

❌ 请勿对字段名称使用前缀。

例如,不要使用“g_”或“s_”来指示静态字段。

部分内容 © 2005, 2009 Microsoft 公司。 保留所有权利。

获得皮尔逊教育公司许可后重印自 框架设计准则:可重用 .NET 库的约定、习惯和模式 ,由 Krzysztof Cwalina 和 Brad Abrams 编写,并作为微软 Windows 开发系列中的出版物之一,于 2008 年 10 月 22 日由 Addison-Wesley Professional 出版。

另请参阅