文档介绍:代码编写工作。任何代码编写工作都需按照此规范执行。约定在每小节下面都有一些要求必须遵守,或者建议遵守的规范。通过O(Obey)表示必须遵守,A(advise)表示建议遵守。[O2--001]XXX。表示第一章第一个必须遵守的规范。[A2-001]XXX。表示第一章第一个建议遵守的规范。参考资料编号资料名称简介作者日期出版单位001FrameworkDesignGuidelines:Conventions,Idioms,Lbraries框架设计师和开发人员的权威指南。pleteSteve、McConnell2006年MicrosoftCorporation术语序号术语备注**********命名规范通用命名约定本节描述了一些通用的命名约定,它们涉及到单词的选择、单词缩写和首字母缩写词的使用规范以及如何避免使用编程语言特有的名字。单词的选择[O2--001]要为标识符选择易于阅读的名字;解释对标识符的名字来说,很重要的一点是要一目了然。标识符的名字应该清楚地说明每个成员做什么,以及每个类型和参数表示什么。示例一个命为HorizontalAlignment的属性就比AlignmentHorizontal更易于阅读。[O2-002]要更看重可读性,而不是更看重简短性。解释名字的意思清楚要比长度短更重要。名字应该与场景、系统的逻辑组成或物理组成以及为人熟知的概念相对应,而不应该与技术或框架相对应。示例属性名CanScrollHorizontally要胜于ScrollableX(不太明显地引用了X坐标轴)。[O2-003]不要使用下划线、连字符以及其他任何既非字符也非数字的字符。解释用大小写来区分单词,而不是用下划线、连字符或其它字符。示例不要使用user_name来表示用户名属性,而是用UserName。[O2-004]不要使用匈牙利命名法。解释匈牙利命名法过于繁琐,命名应该用于说明标识符的含义而不是它的类型。示例不要使用CDocument来定义文档类,而是使用Document。[O2-005]不要使用与广泛使用的编程语言的关键字有冲突的标识符。解释根据CLS(公共语言规范)的第4条规则,所有符合规范等语言必须提供一种机制,允许用户访问以该语言的关键字来命名的标识符。例如,C#在这种情况下使用@符号作为转义机制(escapemechanism)。但是,由于在使用方法时,用转义序列(escapesequence)要比不用转义序列麻烦得多,因此避免使用常见的关键字仍然是个好****惯。示例不要定义一个******@class;的变量来表示类型,而应该用Typetype;使用单词缩写和首字母缩写词[O2-006]不要使用缩写词和缩约词作为标识符名字的一部分解释一般来说,不要在标识符中使用单词缩写或首字母缩写词。正如前面所讲,对名字来说,可读性比简短更重要。另外有一点也同样重要,即不要使用未被广泛接受的单词缩写和首字母缩写词,也就是说,大多数非领域专家的人能够立刻知道它们是什么意思。示例要用GetWindow,而不要用GetWin。[O2-007]不要使用未被广泛接受的首字母缩写词,即使是被广泛接受的首字母缩写词,也应该在必须的时候才使用解释例如,UI用来表示UserInterface,HTML用来表示HypertextMarkupLanguage。在框架的标识中使用它们仍是不好的做法。避免使用语言特有的名字对那些所谓的基本类型,CLR平台上的编程语言通常都有自己的名字(别名)来称呼它们。例如,int是C#。为了确保框架能够充分利用跨语言协作---CLR的核心特性之一,避免在标识中使用语言特有的类型名是很重要的。[O2-008]要给类型名使用语义上有意义的名字,而不要使用语言特有的关键字示例例如:GetLength这个名字比GetInt要好。[O2-009]要使用CLR的通用类型名,而不要使用语言特有的别名--如果除了类型之外,,而不是Toloong(,它对应于C#特有的别名long)。表3-3列出了有别名的基本类型在CLR中的类型名(以及与C#、VisualBasic、C++相对应的类型名)。[O2-010]要使用常见的名字,比如value或item,而不要重复类型的名字---如果除了类型之外,标识符没有其他的语义,而且参数的类型不重要示例类提供的这些方法可以把各种不同的数据类型写入流中:voidWrite(doublevalue);voidWrite(floatvalue);voidWrite(shortvalue);为已有API的新版本命名有时无法将一个新特征添加到一个已有的类型