首页 > 代码库 > 类库开发的设计准则 读书笔记 1名称准则

类库开发的设计准则 读书笔记 1名称准则

MSDN链接:http://msdn.microsoft.com/zh-cn/library/vstudio/ms229042(v=vs.100).aspx

  系列文章列表:

  1名称准则:http://www.cnblogs.com/liu-meng/p/4181984.html

  2类型设计准则:http://www.cnblogs.com/liu-meng/p/4182737.html

 

大小写的样式:

  •   Pascal 大小写

    将标识符的首字母和后面连接的每个单词的首字母都大写。 可以对三字符或更多字符的标识符使用 Pascal 大小写。 例如:BackColor

  •   大小写混合

    标识符的首字母小写,而每个后面连接的单词的首字母都大写。 例如:backColor

  •   大写

    标识符中的所有字母都大写。 例如:IO

 

标示符的大小写准则

  • 对于由多个单词组成的所有公共成员、类型及命名空间名称,要使用 Pascal 大小写。注意,这条规则不适用于实例字段。 由于 成员设计准则 中详细说明的原因,不应使用公共实例字段。
  • 对参数名称使用大小写混合。

 

程序集和dll名称

  •   一定要为程序集 DLL 选择指示大的功能块(如 System.Data)的名称。 程序集和 DLL 的名称不必对应于命名空间名称,但是在命名程序集时沿用命名空间名称是合理的。
  •    考虑按下面的模式命名 DLL:<Company>.<Component>.dll

 

命名空间的名称

  命名空间名称的一般格式如下:<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>] 例如 Microsoft.WindowsMobile.DirectX。 

  使用 Pascal 大小写格式,并用句点分隔命名空间各部分(如 Microsoft.Office.PowerPoint)。 如果您的品牌采用了非传统的大小写,应遵循您的品牌所定义的大小写,即使它与常用的命名空间大小写相背离也如是。

  适当的时候可考虑使用复数命名空间名称。 例如,使用 System.Collections,而不要使用 System.Collection。 但是,品牌名称和首字母缩写词属于此规则的例外情况。 例如,使用 System.IO,而不要使用 System.IOs。

  命名空间和其中的类型不要使用相同的名称。 例如,不要在将“Debug”用作命名空间名称的同时,又在该命名空间中提供一个名为“Debug”的类。 有些编译器要求对这种类型进行完全限定。

 

常见类型的名称
  通常,类型名称应该是名词短语,其中名词是由类型表示的实体。

  向自定义特性类添加 Attribute 后缀。ObsoleteAttribute 和 AttributeUsageAttribute 是符合此准则的类型名称。

  向在事件中使用的类型(如 C# 事件的返回类型)的名称添加 EventHandler 后缀。AssemblyLoadEventHandler 是符合此准则的委托名称。

  向不是事件处理程序的委托的名称添加 Callback 后缀。

  不要向委托添加 Delegate 后缀。

  向扩展 System.EventArgs 的类添加 EventArgs 后缀。

  不要从 System.Enum 类派生;使用当前所用语言支持的关键字。 例如,在 C# 中应使用 enum 关键字。

  向从 System.Exception 继承的类型添加 Exception 后缀。

  向实现 System.Collections.IDictionary 或 System.Collections.Generic.IDictionary<TKey, TValue> 的类型添加 Dictionary 后缀。 注意,System.Collections.IDictionary 是特定类型的集合,但此准则的优先级高于以下更为一般的集合准则。

  向实现 System.Collections.IEnumerable、System.Collections.ICollection、System.Collections.IList、System.Collections.Generic.IEnumerable<T>、System.Collections.Generic.ICollection<T> 或 System.Collections.Generic.IList<T> 的类型添加 Collection 后缀。

  向从 System.IO.Stream 继承的类型添加 Stream 后缀。

  向从 System.Security.CodeAccessPermission 继承的类型或实现 System.Security.IPermission 的类型添加 Permission 后缀。

 

枚举的名称 

  •   不要将 Enum 用作枚举类型的后缀。
  •   不要在标志枚举的名称中添加 Flags 作为后缀。
  •   对枚举使用单数名称,除非枚举值是位域。
  •   对使用位域值的枚举(也称为标志枚举)使用复数名称。

 

类型成员的名称  

  •   类型包含以下几种成员:方法、属性、字段、事件
  •   方法的名称:使用动词或动词短语
  •   属性的名称:使用名词、名词短语或形容词

    使用肯定性短语作为布尔值属性的名称(如使用 CanSeek 而不使用 CantSeek)。 此外,还可以为布尔值属性添加前缀(如 Is、Can 或 Has),但要注意使用得当。

     考虑为属性提供与其类型相同的名称

  •   事件的名称:使用动词或动词短语
     在为事件命名时,使用现在时或过去时表示时间上的前后概念。 例如,在窗口关闭之前引发的关闭事件可命名为“Closing”,在窗口关闭之后引发的关闭事件可命名为“Closed”。

     不要使用“Before”或“After”作为前缀或后缀来指示之前和之后发生的事件。

    使用后缀 EventHandler 命名事件处理程序(用作事件类型的委托)。

      在事件处理程序签名中使用命名为“sender”和“e”的两个参数。

    sender 参数的类型应为 Object,e 参数应是 EventArgs 的实例或继承自它。

      使用 EventArgs 后缀命名事件参数类。

  •   字段的名称:

    字段的命名准则适用于静态公共字段和静态受保护字段。 不要定义公共实例字段或受保护实例字段。 有关更多信息,请参见字段设计。

    在字段名称中使用 Pascal 大小写格式。

    使用名词或名词短语作为字段的名称。

    不要在字段名称中使用前缀。 例如,不要使用 g_ 或 s_ 来区分静态字段和非静态字段。

类库开发的设计准则 读书笔记 1名称准则