类库开发的设计准则 读书笔记 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),但要注意使用得当。
考虑为属性提供与其类型相同的名称
- 事件的名称:使用动词或动词短语
不要使用“Before”或“After”作为前缀或后缀来指示之前和之后发生的事件。
在事件处理程序签名中使用命名为“sender”和“e”的两个参数。
使用 EventArgs 后缀命名事件参数类。
- 字段的名称:
字段的命名准则适用于静态公共字段和静态受保护字段。 不要定义公共实例字段或受保护实例字段。 有关更多信息,请参见字段设计。
在字段名称中使用 Pascal 大小写格式。
使用名词或名词短语作为字段的名称。
不要在字段名称中使用前缀。 例如,不要使用 g_ 或 s_ 来区分静态字段和非静态字段。