当为对象、属性、方法及事件命名时,请选择易于被部件用户理解的名字。这些元素组成部件的编程接口— 其名字含义越清晰,则代码的可用性越强。
本主题的命名规则适用于:
对用户来说,记住整个的单词比记住缩略词更容易,例如 Window 被缩略为 Wind、Wn 或 Wnd,不如 Window 本身好记。下表列出两个例子说明推荐使用的命名约定。
用 | 不要用 |
Application | App |
SpellCheck | SpChk |
当标识符太长而需要缩略时,尽量用完整的首音节。例如,用 AltExpEval,而不用 AlternateExpressionEvaluation 或 AltExpnEvln。
所有标识符都应混用大小写,而不是下划线来分割其中的单词。下表列出两个例子说明推荐使用的命名约定。
用 | 不要用 |
ShortcutMenus | Shortcut_Menus, Shortcutmenus, SHORTCUTMENUS, SHORTCUT_MENUS |
BasedOn | basedOn |
使用与接口相同的单词;不要用诸如 HWND 之类的基于匈牙利命名法的标识符名。记住,这些代码是要被其它用户访问的,因此尽量使用用户描述一个概念时可能会采用的单词。
对集合采用复数而不用新的名称可以减少用户必须记忆项的数目。这样也简化了对集合的命名。下表列出了集合类名称的一些例子。
可以用 | 不要用 |
Axes | Axiss |
SeriesCollection | CollectionSeries |
Windows | ColWindow |
例如,如果有一名为 Axis 的类,则 Axis 对象的集合存储在 Axes 类中。同样,Vertex 对象的集合存储在 Vertices 类中。极少情况下当单数和复数的拼写一样时,则在其后面添加一个 “Collection”— 例如,SeriesCollection。
注意 此命名约定可能不适用于某些集合,尤其在一组对象存在于多个集合时。例如,Mail 程序可能有一个 Name 对象存在于多个集合中:ToList、CcList 等等。在这种情况下,可以将这些独立的 name 集合命名为 ToNames 和 CcNames。
选择三、四个小写字母组成标识部件的前缀,把它用在部件类型库中部件提供的常数名上,以及定义那些常数的 Enums 名上。
例如,提供贷款评估的代码部件可以使用 ‘levs’ 作为前缀。下列贷款类型的 Enum 使用了该前缀。(此外,这些常数包含大写字母‘LT’,标识它们所属的枚举。)
Public Enum LoanType
levsLTMortgage = 1
levsLTCommercial
levsLTConsumer
End Enum
使用前缀减少了部件之间常数命名冲突的机会。这种类型的冲突可能会对用户造成难以克服的缺陷。
常数名越短,这条规则越重要。在最坏的情况下— 常数名是普通的单词,如颜色名— 这种冲突几乎更是不可避免的。
如果创建的方法名是一个动词及其作用的对象名的组合,则次序必须保持一致。或者在所有情况下都将动词放在对象前面,如 InsertWidget 和 InsertSprocket,或者总是将对象放在前面,如 WidgetInsert 和 SprocketInsert。
两种方法各有所长。动词/对象次序创建的名称更象日常说话,因而能更好的表示此方法的意图。而对象/动词的次序则便于将影响某一特定对象的所有方法集合到一起。
选择哪种次序无关紧要,但将两种次序混合将使部件的用户感到迷惑。