C 代码规范

合集下载

C语言代码规范

C语言代码规范

C语言代码规范C语言是一种广泛应用于编程领域的高级编程语言,具有跨平台、效率高、灵活性强等优点。

编写规范合乎标准的C语言代码有助于提高代码的可读性、可维护性和可移植性。

本文将介绍一些常用的C语言代码规范,以帮助开发者编写高质量的C语言程序。

一、代码格式1. 缩进:使用四个空格进行缩进,不要使用制表符。

这样可以保证在不同编辑器或显示器上显示的代码缩进一致。

2. 行长度限制:每行代码应尽量保持在80个字符以内,超过限制的代码可以进行适当换行。

换行时要注意保持代码的清晰可读性,一般可以采用缩进来表达代码的层次关系。

3. 大括号:大括号的位置应该和相关语句对齐,且起始的大括号应该放在语句所在行的末尾,而不是单独另起一行。

4. 空格和空行:在适当的情况下使用空格和空行可以提高代码的可读性。

例如,在运算符和操作数之间使用空格,不同的代码块之间使用空行进行分割等。

二、命名规范1. 变量名:使用有意义的变量名,尽量避免使用单个字符或简单的缩写表示变量。

变量名应该忠实地反映其所代表的含义。

2. 函数名:函数名应使用动词和名词的组合,具体描述函数的功能。

函数名应该清晰地表达其所完成的操作或所返回的结果。

3. 常量名:常量名使用全大写字母,并使用下划线进行分隔。

例如,MAX_LENGTH。

4. 类型名:类型名使用首字母大写的驼峰命名法,例如,StudentInfo。

5. 宏定义名:宏定义名使用全大写字母,并使用下划线进行分隔。

例如,PI。

三、注释规范1. 单行注释:使用"//"进行单行注释,注释符号后面应该留一个空格。

注释应该清晰明了,解释代码的用途或特殊处理等。

2. 多行注释:使用"/*"和"*/"进行多行注释。

多行注释通常用于解释一整块代码的功能或原理等。

3. 函数注释:在每个函数定义的上方加上函数注释,注释中应该包含函数的功能描述、输入参数的说明、返回值的含义以及可能抛出的异常等信息。

C语言代码编程规范

C语言代码编程规范

2.1 排版
• 2.1.1空格的使用:
在两个以上的关键字、变量、常量进行对等操作时,它 们之间的操作符之前、之后或者前后要加空格;进行非对等 操作时,如果是关系密切的立即操作符(如->),后不应 加空格. – 逗号、分号只在后面加空格 – 比较操作符, 赋值操作符,算术操作符,逻辑操作符,位 域操作符等双目操作符的前后加空格 – "!"、"~"、"++"、"--"、"&"(地址运算符)等单目操作符前 后不加空格 – “->”、“.”前后不加空格 – if、for、while、switch等与后面的括号间应加空格,使if 等关键字更为突出、明显。
说明:以免用不同的编辑器阅读程序时,因TAB键所设 置的空格数目不同而造成程序布局不整齐。
• 2.1.13 程序块的分界符(如大括号‘{‟和‘}‟)应各独 占一行并且位于同一列,同时与引用它们的语句左对 齐。 在函数体的开始、类的定义、结构的定义、枚举的定 义以及if、for、do、while、switch、case语句中的程 序都要采用如上的缩进方式。
word = (high << 8) | low if ((a | b) && (a & c)) if ((a | b)< (c & d))
(1) (2) (3)
由于: high << 8 | low = ( high << 8) | low a | b && a & c = (a | b) && (a & c) 所以(1)(2)虽然表意不清,但不会出错 由于:a | b < c & d = a | (b < c) & d ,所以(3)造成判断条件出错

c语言代码规范

c语言代码规范

c语言代码规范C语言是一种通用的编程语言,广泛应用于嵌入式系统、操作系统、驱动程序以及各种应用程序的开发中。

为了提高代码的可读性、可维护性和可移植性,制定一套严格的代码规范是非常必要的。

1. 缩进与空格:- 使用4个空格进行缩进,不要使用Tab键。

- 在运算符两侧以及逗号后加上一个空格。

2. 命名规范:- 变量、函数和类型的命名采用小驼峰命名法,例如myVariable。

- 全局变量以g_开头,静态变量以s_开头。

- 宏定义全部大写,并用下划线分隔单词。

3. 函数定义:- 函数名应该能够描述函数的功能。

- 函数名应该以动词开头,使用小驼峰命名法。

- 函数的参数列表应该明确指明参数的类型和名称。

4. 注释:- 在每个函数之前添加简要的注释,说明函数的功能、参数和返回值。

- 在复杂的代码块中添加必要的注释,解释代码的逻辑和目的。

5. 头文件:- 头文件应该包含必要的宏定义、类型定义和函数声明,不要包含具体的函数实现。

- 头文件应该有相应的宏定义来防止多次包含。

6. 文件结构:- 文件应该按照功能模块进行组织,每个功能模块放在一个独立的文件中。

- 文件中的代码应该按照逻辑顺序进行排列,函数之间使用空行进行分隔。

7. 魔法数值:- 不要直接在代码中出现魔法数值,应该使用常量或者宏来表示。

- 大多数情况下,常量应该在文件的头部定义,并加上相应的注释。

8. 错误处理:- 对于可能出现错误的函数调用,应该检查返回值并进行相应的错误处理。

- 错误处理可以是返回特定的错误码或者抛出异常,但应该保持一致。

9. 括号和空行:- 括号应该与控制语句在同一行,并在括号内留出空格。

- 在函数和控制语句之间应该使用适当的空行进行分隔,提高可读性。

10. 可移植性:- 不要使用与平台相关的特性或者语法。

- 使用标准的数据类型和函数接口,避免使用非标准扩展。

- 避免使用与编译器相关的优化选项。

以上是一些常用的C语言代码规范,可以根据具体的项目需求进行适当调整。

C++代码规范(精简版)

C++代码规范(精简版)

C++代码规范(精简版)博客写于⾃⼰读《代码简洁之道》前,所以这些代码的规范基本源于⾝边前辈的传授、⾃⼰的体悟和别⼈的博客。

读了《代码简洁之道》,对原来命名的⼀些困惑有豁然开朗之感,书中⼤部分的建议窃以为是⽬前最优的命名规范,建议⼤家移步该书。

后期会考虑把书中好的⼜不为⼈所知的观点或者不太好理解的建议在此博客更新。

顺势推荐⼀个对《代码简洁之道》总结的博客——。

⽂末有重点,⼀定要看。

编制⽬的本规范的编制,⽬的在于增加程序的可读性,可维护性,减少合并代码、修改代码、审批代码等操作可能产⽣的错误。

在具体的软件开发中,编制规范主要包括并不限于以下作⽤:程序员可以清楚了解某段代码在做什么,即使很久没有接触。

新进⼈员可以很快接⼿原有代码。

初学者可以少犯前⼈已经犯过的错误。

规定的命名以减少部分命名问题带来的苦恼。

编制原则本规范的编制,主要基于以下的原则进⾏编制,开发⼈员在开发过程中应遵循以下原则并作为代码开发设计的指导:精简性只加⼊重要的,有充⾜理由的规范,取简短且⽆歧义的名字。

单词过长⾸先使⽤通⽤缩写,没有通⽤缩写⾃定义缩写且注释。

精确性清晰地描述与什么有关,去除⽆关表述。

分解性⽆论怎么简化仍然是很长的名字串到⼀起,考虑是否杂糅太多期望,分解期望。

整体性保证代码整体风格的⼀致,避免繁琐和臃肿。

命名规范⾸先要求是要能确切地体现⽤途,包括变量、函数、类的命名。

其次,省略与⽤途⽆关的字符,舍弃部分代码规范的成见,如匈⽛利命名法。

其要求变量中附带类型前缀及作⽤域标志等,在现代编辑器中⽆太⼤意义且冗长。

⽬前没有⼀种命名规范可以让所有的程序员赞同,本命名规范只做简单的规范讨论,符合以上原则即可,⼤家依此执⾏规范。

1. 变量变量命名中⽆需含有表⽰变量或参数类型的单词或表述,现代编辑器可以很容易地定位到变量的类型,且很多现代编程语⾔采⽤⾮静态类型。

对代码的理解影响不⼤的变量,如循环变量(int i, j , k),可以不遵守以上规范指针变量建议加p,指针的指针加pp。

C语言编程规范与代码Review

C语言编程规范与代码Review

C语言编程规范与代码Review C语言是一门广泛使用的编程语言,为了保证程序的可读性、可维护性和可移植性,编程人员需要遵守一定的编程规范。

本文将介绍一些常见的C语言编程规范,并讨论代码Review的重要性和方法。

一、命名规范在C语言编程中,合适的命名规范能够使程序更易读懂。

以下是一些常见的命名规范建议:1. 变量命名应具有描述性,能够清晰表达其用途;2. 使用有意义的函数名,能够准确表达函数的功能;3. 使用驼峰命名法或下划线命名法,保持命名的一致性;4. 避免使用单字符作为变量名或函数名,除非其在特定情况下具有明确含义。

二、缩进与对齐缩进和对齐是保持代码结构清晰的重要手段。

在C语言编程中,以下规则需要注意:1. 使用适当的缩进来区分不同层次的代码块;2. 使用合适的空格或制表符对齐代码,使其更易读;3. 在函数定义和条件语句等代码块中,使用花括号将其包裹起来,保持结构的清晰性。

三、注释规范良好的注释能够提供代码的解释和说明,使他人更容易理解你的代码。

以下是一些注释规范的建议:1. 在关键代码处添加注释,解释其功能和作用;2. 注释应具有简洁明了的语言,避免使用复杂的技术术语;3. 避免无意义的注释,注释应与代码相辅相成;4. 在函数和文件的开头,提供一份概览性的注释,说明其用途和使用方法。

四、错误处理良好的错误处理能够提高程序的稳定性和可靠性。

以下是一些错误处理的原则:1. 检查输入参数的合法性,防止潜在的错误发生;2. 避免使用魔术数值,使用宏定义或常量来表示特定的含义;3. 使用合适的异常处理机制,如返回错误码或抛出异常。

五、代码Review的重要性代码Review是一种通过检查、审查和评估代码来提高代码质量的过程。

代码Review的重要性体现在以下几个方面:1. 代码Review有助于发现和纠正潜在的代码错误和缺陷;2. 代码Review可以促进编程规范的遵守和统一性的维护;3. 通过代码Review,团队成员之间可以相互学习和交流,提高编程能力。

C语言代码规范

C语言代码规范

C语言代码规范作为一种广泛使用的编程语言,C语言拥有着强大的功能和广泛的应用领域。

为了编写出高质量、可读性强的代码,遵循一定的代码规范是非常重要的。

本文将介绍一些常见的C语言代码规范,旨在帮助程序员写出更加规范、易于维护的代码。

一、命名规范在编写C语言代码时,合理的命名规范可以让代码更加易读、易懂,便于他人理解和维护。

1. 变量名和函数名的命名应使用有意义的英文单词或单词组合,并采用驼峰命名法,即首字母小写,后续单词首字母大写。

例如:userName, calculateScore。

2. 宏定义和枚举常量的命名应全大写,并使用下划线分隔单词。

例如:MAX_SIZE, COLOR_GREEN。

3. 结构体和联合的命名应采用驼峰命名法,首字母大写。

例如:StudentInfo, UserInfo。

二、缩进和空格良好的缩进和适当的空格使用可以提高代码的可读性,减少错误的发生。

1. 使用4个空格进行缩进,避免使用制表符。

2. 函数和循环体内的代码块使用花括号{}包围,且左花括号与代码在同一行,右花括号独占一行。

3. 运算符之间、逗号之后应添加空格,如:a = b + c; for(int i = 0; i < n; i++)。

4. 逻辑语句和赋值语句建议每行只书写一个,以增加可读性。

三、注释规范良好的注释具有很大的意义,可以让他人更容易理解代码的功能和思路。

1. 使用注释对代码进行解释和补充说明,以便他人理解代码的功能。

2. 注释应写在需要解释的代码上方,使用//或/* */进行注释。

3. 函数和重要代码块前应添加注释,说明其功能和预期结果。

四、函数规范函数是程序的基本组织单位,采用规范的函数写法有助于提高程序的可维护性。

1. 函数应具有明确的功能和作用,函数名应符合命名规范,能准确反映函数的功能。

2. 函数的参数如果较多,建议分行书写,并使用逗号对齐。

3. 函数应有良好的结构,合理划分代码块,可读性强。

c语言命名规范

c语言命名规范C语言命名规范是为了提高代码的可读性和维护性,使不同人员编写的代码在风格上保持一致。

以下是一些常见的C语言命名规范:1. 变量和函数名应使用有意义的描述性词汇,尽量使用英文单词或缩写,避免使用无意义的单词或缩写。

2. 变量名应使用小写字母,使用下划线作为单词之间的分隔符,例如:num_students。

3. 函数名应使用小写字母,每个单词的首字母大写,使用驼峰命名法,例如:calculateAverage。

4. 宏定义应使用大写字母,并用下划线分隔单词,例如:MAX_NUM。

5. 常量名应使用大写字母,并用下划线分隔单词,例如:PI。

6. 结构体名应使用大写字母开头,每个单词首字母大写,使用驼峰命名法,例如:StudentInfo。

7. 指针名应以“p_”开头,后面跟上指向的变量名,例如:p_student。

8. 数组名应采用单数形式,例如:student。

9. 枚举类型应使用大写字母命名,并用下划线分隔单词,例如:ColorType。

10. 文件名应全部小写,并用下划线分隔单词,例如:calculator.c。

11. 函数参数名应使用小写字母,使用下划线作为单词之间的分隔符,例如:num_students。

12. 类型定义名应使用大写字母开头,每个单词首字母大写,使用驼峰命名法,例如:StudentInfo。

13. 行内函数或变量的命名应使用小写字母,用下划线分隔单词,例如:get_average。

总之,C语言命名规范应尽量清晰、简洁和有意义。

使用规范的命名方法可以提高代码的可读性和可维护性,从而更好地理解和修改代码。

C语言代码规范(编程规范)

什么叫规范?在C语言中不遵守编译器的规定,编译器在编译时就会报错,这个规定叫作规则。

但是有一种规定,它是一种人为的、约定成俗的,即使不按照那种规定也不会出错,这种规定就叫作规范。

虽然我们不按照规范也不会出错,但是那样代码写得就会很乱。

大家刚开始学习C语言的时候,第一步不是说要把程序写正确,而是要写规范。

因为如果你养成一种非常不好的写代码的习惯,代码就会写得乱七八糟,等到将来工作面试的时候,这样的习惯可能会让你失去机会。

那么代码如何写才能写得很规范呢?代码的规范化不是说看完本节内容后就能实现的。

它里面细节很多,而且需要不停地写代码练习,不停地领悟,慢慢地才能掌握的一种编程习惯。

所以大家不要想着一下子就能把代码规范化的所有知识全部掌握,也不要想着一下子就能把代码写规范,这是不太可能的。

有很多知识,比如为什么代码要这样写,为什么不能那样写,作为一个初学者你是很难弄明白的。

有很多规范是为了在程序代码量很大的时候,便于自己阅读,也便于别人阅读。

所以刚开始的时候有很多规范你不知道为什么要那样规定,你就单纯地模仿就行了。

等将来敲代码敲得时间长了,你就会感觉到那样写是很有好处的。

代码规范化的第一个好处就是看着很整齐、很舒服。

假如你现在用不规范的方式写了一万行代码,现在能看得懂,但等过了三个月你再回头看时就很吃力了,更不要说给别人看了。

所以代码要写规范,比如加注释就是代码规范化的一个思想。

在一般情况下,根据软件工程的思想,我们的注释要占整个文档的20%以上。

所以注释要写得很详细,而且格式要写得很规范。

第二个好处是,把代码写规范则程序不容易出错。

如果按照不规范的格式输入代码的话,很容易出错。

而代码写规范的话即使出错了查错也会很方便。

格式虽然不会影响程序的功能,但会影响可读性。

程序的格式追求清晰、美观,是程序风格的重要构成元素。

代码规范化基本上有七大原则,体现在空行、空格、成对书写、缩进、对齐、代码行、注释七方面的书写规范上。

(完整word版)C++代码规范

C++代码规范目录1.介绍 (1)2.编码规范 (2)2.1文件结构 (2)2.1.1版权和版本的声明 (2)2.1.2头文件的结构 (2)2.1.3定义文件的结构 (3)2.1.4目录结构 (4)2.2结构化程序设计 (4)2.2.1功能模块抽取 (4)2.2.2功能模块编码原则 (5)2.2.3编程标准 (6)2.2.4源代码层次 (6)2.3命名约定 (7)2.3.1综述 (7)2.3.2变量命名 (8)2.3.3函数及数组的命名 (9)2.3.4结构类型命名 (10)2.3.5命名长度 (10)2.3.6Windows应用程序命名规则 (10)2.4程序规则 (12)2.4.1变量声明和定义 (12)2.4.2数组、字符串 (13)2.4.3函数声明和定义 (14)2.4.4语句 (16)2.5排版格式规则 (16)2.5.1源代码文件 (17)2.5.2空行 (17)2.5.3代码行 (17)2.5.4代码行内的空格 (18)2.5.5对齐 (19)2.5.6分行 (20)2.5.7表达式 (20)2.5.8函数 (22)2.5.9语句 (22)2.5.10变量、类型声明 (23)2.5.11修饰符的位置 (23)2.5.12类的版式 (24)2.6注释格式 (24)2.6.1介绍 (24)2.6.2注释基本规则 (25)2.6.3程序注释 (25)2.6.4模块注释 (26)2.6.5函数注释 (27)3.代码管理........................................................................................................ 错误!未定义书签。

3.1版本管理 (61)3.2代码更新 (61)本文的宗旨在于规范化源代码的编写,满足系统面向对象要求、可读性要求、正确性与容错性要求和可重用性要求。

C语言程序设计代码规范

C++语言程序设计代码规范1 命名规范本规范对变量、函数、类(结构)等的名称有严格的规定,在编码过程中务必遵守。

1.1 变量命名规范变量名称采用匈牙利命名法,即:完整的名称由“缀”和“主体”复合而成。

“缀”用于指示变量的种类、数值类型、作用域等属性,由小写字符和下划线(_)组成,根据其附着在“主体”的位置分为前缀和后缀两种。

“主体”表示变量的语义。

整个变量名称的格式如下:<作用域前缀>[<指针缀>]<类型缀><主体><作用域后缀>下面详细论述。

1.1.1 作用域缀(前缀和后缀)作用域前缀处在整个变量名的最前面。

常用的作用域前缀为:作用域后缀处在整个变量名的最后面。

只有一种情况使用作用域后缀,就是函数的形参必须以作用域后缀结束。

1.1.2 指针缀如果一个变量是指针,则必须使用指针缀。

指针缀使用字母p表示。

以前,在DOS平台下有短指针和长指针的区别,有时称长指针为lp。

在Win32平台下已经不存在这个区别了,所以统一使用p, 而不是lp。

1.1.3 类型缀类型缀由小写字符构成,用于描述变量的类型。

注意:1.不要私自创造出各种各样的前缀。

2.也没有必要在前缀中仔细区分一些细小的类型区别,那样会给代码维护工作带来额外的麻烦。

常用的类型前缀为:对于其他不在上面表中的结构、类等复杂数据类型,特别是不常使用的和不通用的,不使用前缀。

例如:class Person Jonson;struct DateTime MyDt;在应用场合明确的情况下,例如:简单的局部变量,它的值类型前缀有时可以省略。

具体见下面的例子。

1.1.4 复合前缀根据以上规则,变量根据它所在的作用域、类型、是否是指针,得到一个复合前缀。

例如:char g_szFileName[_MAX_PATH]; //全局字符串变量char* g_pszFileName; //全局字符串指针变量:char s_szFileName[_MAX_PATH]; //静态字符串变量char* s_pszFileName; //静态字符串指针变量:char _s_szFileName[_MAX_PATH]; //局部静态字符串变量char* _s_pszFileName; //局部静态字符串指针变量:char m_szFileName[_MAX_PATH]; //类字符串变量char* m_pszFileName; //类字符串指针变量:char ms_szFileName[_MAX_PATH]; //类静态字符串变量char* ms_pszFileName; //类静态字符串指针变量:更多的例子,参见下面按照作用域讨论变量名一节。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C#代码规范1、前言本文档定义了一些通用的代码规范和准则,一般情况下本文档适用于项目组所有项目,特殊情况下,如果客户有自己的代码规范,以客户的代码优先。

2、大小写约定2.1、大小写样式,本文中将出现两种大小写样式,这里先分别定义:Pascal大小写将标识符的首字母和后面连接的每个单词的首字母都大写。

可以对三字符或更多字符的标识符使用Pascal大小写。

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

例如:backColor匈牙利命名法基本原则是:变量名=属性+类型+对象描述。

例如:lblName2.2、标识符大小写规则2.2.1、下表中列出常见的代码元素的样式规范和示例2.2.2、除了遵循以上大小写约定外还需注意以下约定(除常量为特例):✓如果标识符由多个单词组成,请不要在各单词之间使用分隔符,如下划线(“_”)或连字符(“-”)等。

而应使用大小写来指示每个单词的开头。

✓所有公共的成员如:方法、属性,都应使用Pascal大小写样式2.3、首缩写词的大小写规则2.3.1、首字母缩写词首字母缩写词是由术语或短语中各单词的首字母构成的单词。

例如,HTML是HypertextMarkupLanguage的首字母缩写。

为了方便编码规范的实施,本文规定受字母缩写词必须至少为两个单词,正好为两个单词的首字母缩写词称其为“短型首字母缩写词”,两个单词以上的称其为“长型首字母缩写词”2.3.2、单缩写词单缩写词是一个单词的缩写。

例如,ID是identifier的缩写。

注意:可在标识符中使用的两个缩写词是ID和OK。

在采用Pascal大小写格式的标识符中,这两个缩写词的大小写形式应分别为Id和Ok。

如果在采用大小写混合格式的标识符中将这两个缩写词用作首个单词,则它们的大小写形式应分别为id和ok。

2.3.3、首字母缩写词有以下大小写规则:短型首字母缩写词在Pascal大小写样式中,两个字母都应大写。

在Camel 大小写样式中,如果是首个单词,两个字母都应小写。

例如:✓名为DBRate的属性是一个采用Pascal大小写格式的标识符,它使用短型首字母缩写词(DB)作为首个单词。

✓名为ioChannel的参数是一个采用大小写混合格式的标识符,它使用短型首字母缩写词(IO)作为首个单词。

长型首字母缩写词,在任何大小写样式中都视为一个单词。

例如:✓名为XmlWriter的类是一个采用Pascal大小写格式的标识符,它使用长型首字母缩写词作为首个单词。

✓名为htmlReader的参数是一个采用大小写混合格式的标识符,它使用长型首字母缩写词作为首个单词。

2.3.4、复合词的大小写规则:所有复合词在任何大小写样式中都视为一个完整单词。

例如,hashtable是一个紧凑格式的复合词,应将其视为一个单词并相应地确定大小写。

如果采用Pascal大小写格式,则该复合词为Hashtable;如果采用大小写混合格式,则该复合词为hashtable。

若要确定某个单词是否是紧凑格式的复合词,请查阅最新的词典。

2.3.5、区分大小写大小写准则只是为了使标识符更易于阅读和辨认。

不能将大小写规则用作避免库元素之间的命名冲突的手段。

3、通用命名约定3.1、通用命名约定讨论的是如何为库元素选择最适当的名称。

这些准则适用于所有标识符。

后面各节讨论特定元素(如命名空间或属性)的命名。

3.2、名称的选择与命名原则3.2.1、请选择易读的标识符名称例如,英文属性名称HorizontalAlignment比AlignmentHorizontal更具可读性。

3.2.2、可读性比简洁性更重要例如,属性名称CanScrollHorizontally比ScrollableX(指X轴,但意义不明确)更好。

3.2.3、不要使用下划线、连字符或任何其他非字母数字字符3.2.4、不要使用匈牙利表示法匈牙利表示法是在标识符中使用一个前缀对参数的某些元数据进行编码,如标识符的数据类型。

3.2.5、避免使用与常用编程语言的关键字冲突的标识符虽然符合CLS的语言必须提供将关键字用作普通字的方法,最佳做法不要求强制开发人员了解如何实现。

对于大多数编程语言,语言参考文档都会提供语言所使用的关键字列表。

3.3、缩写和首字母缩写单词尽量避免使用缩写或首字母缩写词。

这类名称的可读性较差。

同样,要确定某个首字母缩写词是否已受到广泛认可也是很困难的。

不要将缩写或缩略形式用作标识符名称的组成部分。

例如,使用OnButtonClick而不要使用OnBtnClick。

除非必要,不要使用任何未被广泛接受的首字母缩写词。

3.4、程序集和DLL的名称所有程序集名称都必须和项目的命名空间相对应。

3.5、命名空间的名称3.5.1、所有命名空间都需以公司名或产品名为根命名空间。

为命名空间选择的名称应指示命名空间中的类型所提供的功能。

例如,命名空间包含的类型允许开发人员使用套接字通过网络进行通信。

3.5.2、命名空间名称的一般格式如下:(<公司>|<产品>|<技术>)[.<性质>][.<子命名空间>]例如,ClearCost.Repository.Interface。

3.5.3、命名空间和其中的类型不要使用相同的名称。

例如,不要在将“Debug”用作命名空间名称的同时,又在该命名空间中提供一个名为“Debug”的类。

3.5.4、命名空间一般准则不要引入宽泛的类型名称,如Element、Node、Log和Message。

在通常情况下,这样极可能导致类型名称冲突。

应对宽泛的类型名称进行限定(例如FormElement、XmlNodeEventLog、SoapMessage)。

3.5.5、应用程序命名空间准则不要在单个应用程序模型内为命名空间中的多个类型指定相同的名称。

例如,如果要编写Windows窗体应用程序开发人员要使用的特殊控件库,则不应引入名为Checkbox的类型,因为该应用程序模型已存在同名类型。

3.5.6、核心命名空间准则不要指定会与核心命名空间中的任何类型发生冲突的类型名称。

例如,不要使用Directory作为类型名称,因为这会与Directory类型冲突。

3.5.7、技术命名空间准则不要分配会与单个技术命名空间内的其他类型发生冲突的类型名称。

不要引入会导致技术命名空间的类型与应用程序模型命名空间中的类型发生冲突的类型名称(除非该技术不用于该应用程序模型)。

3.6、接口、类和结构的名称通常,类型名称应该是名词短语,其中名词是由类型表示的实体。

例如,Button、Stack和File都具有名称,用于标识由类型表示的实体。

从开发人员的角度选择标识实体的名称;名称应反映使用场合。

下面的准则适用于如何选择类型名称:✓按照Pascal大小写格式,使用名词或名词短语(或偶尔使用形容词短语)为类、接口和值类型命名。

✓不要为类名加前缀(如字母C)。

接口不适用此规则,它应以字母I开头。

✓考虑在派生类的末尾使用基类名称。

例如,从Stream继承的Framework类型以Stream结尾,从Exception继承的类型以Exception结尾。

✓为接口名称加上字母I前缀,以指示该类型为接口。

✓在定义类/接口对(其中类是接口的标准实现)时,一定要确保类和接口的名称除接口名称以字母I为前缀外,二者应完全相同。

例如,Framework提供IAsyncResult接口和AsyncResult类。

✓用描述性名称为泛型类型参数命名,除非单个字母的名称已完全可以自我说明而无需描述性名称。

✓对具有一个单字母类型参数的类型,考虑将字母T用作这些类型的类型参数名称。

✓将字母T作为描述性类型参数名称的前缀。

✓考虑在参数名称中指示置于类型参数上的约束。

例如,约束于ISession的参数可称为TSession。

3.7、常见类型的名称下面的准则提供的命名约定有助于开发人员了解某些类的使用场合:✓向自定义属性类添加Attribute后缀。

✓ObsoleteAttribute和AttributeUsageAttribute是符合此准则的类型名称。

✓向在事件中使用的类型(如C#事件的返回类型)的名称添加EventHandler后缀。

✓AssemblyLoadEventHandler是符合此准则的委托名称。

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

事件处理程序一般以EventHandler结尾✓不要向委托添加Delegate后缀。

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

✓不要从System.Enum类派生;使用当前所用语言支持的关键字。

例如,在C#中应使用enum关键字。

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

✓向实现IDictionary或IDictionary<TKey,TValue>的类型添加Dictionary后缀。

注意,是特定类型的集合,但此准则的优先级高于以下更为一般的集合准则。

✓向实现IEnumerable、ICollection、IList、IEnumerable<T>、ICollection<T>或IList<T>的类型添加适当的说明性后缀。

✓向从继承的类型或实现的类型添加Permission后缀。

注意:以上准则中提及的从某个其他类型继承的类型,指的是所有的继承者,而不只是直接继承的类型。

例如,“向从Exception继承的类型添加Exception后缀”这一准则意味着在继承层次结构中具有Exception的任何类型都应该使用以Exception结尾的名称。

每条这样的准则还用来保留指定的后缀;除非类型满足该准则表述的条件,否则不应使用该后缀。

例如,如果类型不是从Exception直接或间接继承的,则类型名称不能以Exception结尾。

3.8、枚举的名称不要在枚举值名称中使用前缀。

例如,不要对ADO枚举使用ad之类的前缀,也不要对多格式文本枚举使用rtf之类的前缀,依此类推。

这还意味着不应在枚举值名称中包含枚举类型名称。

下面的代码示例演示了不正确的枚举值命名。

不要将Enum用作枚举类型的后缀。

不要在标志枚举的名称中添加Flags作为后缀(位域枚举可例外)。

对枚举使用单数名称,除非枚举值是位域。

对使用位域值的枚举(也称为标志枚举)使用复数名称。

3.9、类型成员的名称类型包含以下几种成员:方法、属性、字段、事件3.9.1、方法的名称使用动词或动词短语作为方法的名称。

通常,方法对数据进行操作,因此,使用动词描述方法的操作可使开发人员更易于了解方法所执行的操作。

相关文档
最新文档