c代码规范
- 格式:doc
- 大小:228.50 KB
- 文档页数:9
C语言代码规范C语言是一种广泛应用于编程领域的高级编程语言,具有跨平台、效率高、灵活性强等优点。
编写规范合乎标准的C语言代码有助于提高代码的可读性、可维护性和可移植性。
本文将介绍一些常用的C语言代码规范,以帮助开发者编写高质量的C语言程序。
一、代码格式1. 缩进:使用四个空格进行缩进,不要使用制表符。
这样可以保证在不同编辑器或显示器上显示的代码缩进一致。
2. 行长度限制:每行代码应尽量保持在80个字符以内,超过限制的代码可以进行适当换行。
换行时要注意保持代码的清晰可读性,一般可以采用缩进来表达代码的层次关系。
3. 大括号:大括号的位置应该和相关语句对齐,且起始的大括号应该放在语句所在行的末尾,而不是单独另起一行。
4. 空格和空行:在适当的情况下使用空格和空行可以提高代码的可读性。
例如,在运算符和操作数之间使用空格,不同的代码块之间使用空行进行分割等。
二、命名规范1. 变量名:使用有意义的变量名,尽量避免使用单个字符或简单的缩写表示变量。
变量名应该忠实地反映其所代表的含义。
2. 函数名:函数名应使用动词和名词的组合,具体描述函数的功能。
函数名应该清晰地表达其所完成的操作或所返回的结果。
3. 常量名:常量名使用全大写字母,并使用下划线进行分隔。
例如,MAX_LENGTH。
4. 类型名:类型名使用首字母大写的驼峰命名法,例如,StudentInfo。
5. 宏定义名:宏定义名使用全大写字母,并使用下划线进行分隔。
例如,PI。
三、注释规范1. 单行注释:使用"//"进行单行注释,注释符号后面应该留一个空格。
注释应该清晰明了,解释代码的用途或特殊处理等。
2. 多行注释:使用"/*"和"*/"进行多行注释。
多行注释通常用于解释一整块代码的功能或原理等。
3. 函数注释:在每个函数定义的上方加上函数注释,注释中应该包含函数的功能描述、输入参数的说明、返回值的含义以及可能抛出的异常等信息。
c语言编程的书写规则C语言编程的书写规则主要遵循以下规范:1. 缩进和空格:缩进和空格的使用可以使代码更易读。
通常,运算符两侧、逗号之后、控制语句(如if、for、while等)前后应添加空格。
在函数和括号的开头和结尾,通常应有空行。
2. 命名规则:变量和函数名应简洁且有意义。
通常,变量名和函数名以小写字母开头,后续单词的首字母大写,如 `myVariable`。
3. 注释:注释应简洁明了,解释代码的作用或目的,而不是解释代码是如何工作的。
注释应放在代码的上方或旁边,与代码保持一定距离。
4. 函数:函数应该尽可能短小,只做一件事情。
函数应具有描述性的名称,参数列表应清晰,并应包含返回类型。
5. 大括号:在C语言中,大括号 `{}` 用于定义代码块。
每一个独立的语句块都应该使用大括号。
6. 控制结构:控制结构(如if-else、for、while等)应该清晰明了,控制语句应只包含必要的逻辑。
7. 类型定义:类型定义应清晰明了,如果有必要,可以使用typedef来定义新的类型名称。
8. 预处理器指令:预处理器指令(如include、define等)应放在源文件的顶部。
9. 避免魔法数字和字符串:魔法数字和字符串(硬编码的值)会使代码难以理解和维护。
如果需要在代码中使用特定的值,应将其定义为常量或宏。
10. 避免全局变量:全局变量会使代码难以理解和维护,并可能导致意外的副作用。
尽可能使用局部变量。
11. 错误处理:在可能失败的操作后,应检查错误并相应地处理它们。
以上只是一些基本的C语言编程规则,实际编写代码时可能还需要考虑更多因素,如代码的可读性、可维护性、性能等。
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语言的时候,第一步不是说要把程序写正确,而是要写规范。
因为如果你养成一种非常不好的写代码的习惯,代码就会写得乱七八糟,等到将来工作面试的时候,这样的习惯可能会让你失去机会。
那么代码如何写才能写得很规范呢?代码的规范化不是说看完本节内容后就能实现的。
它里面细节很多,而且需要不停地写代码练习,不停地领悟,慢慢地才能掌握的一种编程习惯。
所以大家不要想着一下子就能把代码规范化的所有知识全部掌握,也不要想着一下子就能把代码写规范,这是不太可能的。
有很多知识,比如为什么代码要这样写,为什么不能那样写,作为一个初学者你是很难弄明白的。
有很多规范是为了在程序代码量很大的时候,便于自己阅读,也便于别人阅读。
所以刚开始的时候有很多规范你不知道为什么要那样规定,你就单纯地模仿就行了。
等将来敲代码敲得时间长了,你就会感觉到那样写是很有好处的。
代码规范化的第一个好处就是看着很整齐、很舒服。
假如你现在用不规范的方式写了一万行代码,现在能看得懂,但等过了三个月你再回头看时就很吃力了,更不要说给别人看了。
所以代码要写规范,比如加注释就是代码规范化的一个思想。
在一般情况下,根据软件工程的思想,我们的注释要占整个文档的20%以上。
所以注释要写得很详细,而且格式要写得很规范。
第二个好处是,把代码写规范则程序不容易出错。
如果按照不规范的格式输入代码的话,很容易出错。
而代码写规范的话即使出错了查错也会很方便。
格式虽然不会影响程序的功能,但会影响可读性。
程序的格式追求清晰、美观,是程序风格的重要构成元素。
代码规范化基本上有七大原则,体现在空行、空格、成对书写、缩进、对齐、代码行、注释七方面的书写规范上。
编码规1. 头文件编码规 (2)2. 函数编写规 (2)3. 标识符命名与定义 (2)3.1通用命名规则 (2)3.2 变量命名规则 (3)3.3函数命名规则 (3)3.4 宏的命名规则 (3)4. 变量 (3)5. 宏、常量 (4)6. 质量保证 (4)7. 程序效率 (5)8. 注释 (5)9. 排版与格式 (6)10. 表达式 (7)11. 代码编辑、编译 (7)12. 安全性 (7)13. 可读性 (7)14. 可测性 (7)15. 单元测试 (8)16. 可移植性 (8)1. 头文件编码规1. 禁止头文件循环依赖。
2. .c/.h文件不要包含用不到的头文件。
3. 禁止在头文件中定义变量。
4. 同一产品统一包含头文件排列方式。
(如功能块排序、文件名升序、稳定度排序。
)5. 只能通过包含头文件的方式使用其他.c提供的接口,禁止在.c过extern的方式使用外部函数接口、变量。
2. 函数编写规1. 一个函数仅完成一件功能。
2. 重复代码应该尽可能提炼成函数。
3.为简单功能编写函数4.函数的返回值要清楚、明了,让使用者不容易忽视错误情况。
5. 避免函数过长,新增函数不超过100行(非空非注释行)。
6. 避免函数的代码块嵌套过深,新增函数的代码块嵌套不超过4层。
7. 可重入函数应避免使用全局变量和禁止使用static变量。
8. 设计高扇入,合理扇出(小于7)的函数。
9. 废弃代码(没有被调用的函数和变量)要及时注释(有助于更好理解程序)。
10. 对所调用函数的错误返回码要仔细、全面地处理。
11. 函数不变参数使用const。
12. 函数应避免使用全局变量、静态局部变量和I/O操作,不可避免的地方应集中使用。
13. 函数的参数个数不超过5个。
14. 减少或禁止函数本身或函数间的递归调用3. 标识符命名与定义3.1通用命名规则1. 标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。
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; //类静态字符串指针变量:更多的例子,参见下面按照作用域讨论变量名一节。
C语言的命名规范与代码风格引言在编写C语言程序时,一个良好的命名规范和代码风格能够提高代码的可读性和可维护性。
本文将介绍一些常用的C语言命名规范和代码风格,帮助开发者编写规范、易读、易维护的代码。
命名规范1. 变量和函数命名•使用有意义的命名,能够准确描述变量或函数的用途。
•变量名应该使用小写字母,单词之间使用下划线分隔,例如:first_name。
•函数名首字母小写,后续单词首字母大写,采用驼峰命名法,例如:getUserInfo()。
2. 常量命名•常量名应全部大写,单词之间使用下划线分隔,例如:MAX_NUM。
•常量名应该具有描述性,能够清晰表达常量的含义。
3. 宏定义命名•宏定义命名应全部大写,单词之间使用下划线分隔,例如:#define PI3.1415926。
•宏定义命名应具有描述性,能够清晰表达宏定义的含义。
4. 结构体和枚举命名•结构体和枚举类型命名应使用驼峰命名法,首字母小写,例如:personInfo。
•枚举值命名应全部大写,单词之间使用下划线分隔,例如:STATUS_OK。
5. 文件和目录命名•文件名应使用小写字母,单词之间使用下划线分隔,例如:my_utils.c。
•目录名应使用小写字母,单词之间使用下划线分隔,例如:my_module。
6. 注释•对于每个变量或函数,在其声明之前应添加注释,描述其作用和用法。
•注释应以双斜线//开始,单行注释使用//后跟注释内容,多行注释使用/*和*/将注释内容包裹起来。
代码风格1. 缩进和空格•使用四个空格进行缩进。
•在运算符前后添加空格,增加代码的可读性。
2. 大括号•在控制语句(如if语句、for循环等)的执行块前后需要加上大括号,即使代码块只有一行。
3. 行数限制•一行最多不超过80个字符。
4. 函数和语句•每个函数之间应空出一行。
•每个语句之间也应空出一行,提高代码可读性。
5. 条件语句•在条件语句中,将常量放在前面,变量放在后面,避免将变量赋值写成判断等号。
C语言中的代码规范和规范检查工具编程是一门需要高度的准确性和规范性的艺术。
在C语言编程中,代码规范和规范检查工具是确保代码质量和可维护性的重要组成部分。
遵循代码规范可以提高代码的可读性、可维护性和可移植性,同时也有助于团队协作和项目管理。
本文将介绍C语言中常用的代码规范以及一些常见的规范检查工具。
一、代码规范1. 编码风格编码风格是代码规范的基础,它主要指定了如何组织代码的结构、如何命名变量和函数、如何使用注释等。
编码风格的一致性可以使代码易于阅读和理解,也便于团队之间的合作。
在C语言中,有多种编码风格可供选择,例如K&R风格、ANSI风格和GNU风格等。
2. 命名规范良好的命名规范可以使代码更具可读性和可维护性。
在C语言中,通常使用驼峰式命名法或下划线命名法。
变量名和函数名应具有描述性,避免使用过于简单或过于复杂的命名。
另外,对于常量和宏定义,一般使用全大写字母来命名。
3. 注释规范注释是代码中的重要部分,可以提供关键信息和解释,方便他人理解和修改代码。
在C语言中,注释主要分为单行注释和多行注释。
良好的注释应该准确地描述代码的功能、输入和输出。
另外,还应注意及时更新注释,保持它们与实际代码的一致性。
二、规范检查工具1. lintlint是C语言中最早的一种规范检查工具,它可以对源代码进行静态分析,找出潜在的问题和代码不规范之处。
lint工具可以检查变量的声明和使用、函数返回值的检查、潜在的内存泄漏、未使用的变量等。
lint工具需要使用特定的选项和配置文件来指定规范。
2. clang-formatclang-format是一个由Clang项目提供的代码格式化工具,可以根据配置文件自动格式化C语言代码。
它支持多种编码风格,如K&R风格、ANSI风格和Google风格等。
clang-format可以统一代码的风格,减少人为错误,提高代码的可读性和可维护性。
3. cppcheckcppcheck是一个功能强大的静态代码分析工具,用于检查C语言代码中的潜在错误和不规范的代码。
C语⾔的语法风格与代码书写规范指南C代码:#include <stdio.h>int main(void){printf("That is Right Style\n");return 0;}在⼀个标准的C语⾔程序中,最特殊的莫过于main函数了,⽽说到底它就是⼀个函数⽽已,仅仅因为它地位特殊拥有第⼀执⾏权⼒,换句话说,难道因为⼀个⼈是省长它就不是⼈类了?所以函数该有的它都应该有,那么函数还有什么呢?函数⼤体上分为内联函数(C99)(内联函数并⾮C++专属,C语⾔亦有,具体见前⽅链接)和⾮内联的普通函数,它们之间有⼀个很明显的特点(⼀般情况下),那就是不写原型直接在main函数上⽅定义,即使不加'inline'关键字,也能被编译器默认为内联函数,但之后带来的某些并发问题就不是编译器考虑的了。
普通函数正确的形式应该为声明与定义分离,声明就是⼀个函数原型,函数原型应该有⼀个函数名字,⼀个参数列表,⼀个返回值类型和⼀个分号。
定义就是函数的内在,花括号内的就是函数的定义://...int function(int arg_1, float arg_2);//...int main(int argc, char* argv[]){int output = function(11, 22.0);printf("%d\n",output);return 0;}int function(int arg_1, float arg_2){int return_value = arg_1;float temp_float = arg_2;return return_value;}依上所述,当⾮必要时,在⾃⼰编写函数的时候请注意在开头(main函数之前)写上你的函数的原型,并且在末尾(main函数之后)写上你的函数定义,这是⼀个很好的习惯以及规范。
所谓代码整洁之道,就是如此。
c代码规范(总7页) -CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除C# 代码规范1、前言本文档定义了一些通用的代码规范和准则,一般情况下本文档适用于项目组所有项目,特殊情况下,如果客户有自己的代码规范,以客户的代码优先。
2、大小写约定2.1、大小写样式,本文中将出现两种大小写样式,这里先分别定义:Pascal大小写将标识符的首字母和后面连接的每个单词的首字母都大写。
可以对三字符或更多字符的标识符使用 Pascal 大小写。
例如:BackColorCamel大小写标识符的首字母小写,而每个后面连接的单词的首字母都大写。
例如:backColor 匈牙利命名法基本原则是:变量名=属性+类型+对象描述。
例如:lblName2.2、标识符大小写规则2.2.1、下表中列出常见的代码元素的样式规范和示例标识符规则示例类Pascal AppDomain枚举类型Pascal ErrorLevel枚举值Pascal Warning事件Pascal ValueChanging, ValueChanged异常类Pascal WebException只读的静态字段Pascal CurrentUser接口Pascal IDisposable方法Pascal ToString命名空间Pascal参数Camel typeName属性Pascal Name常量全大写MAXLENGTH, LENGTH_MAXWeb或Win控件匈牙利txtName2.2.2、除了遵循以上大小写约定外还需注意以下约定(除常量为特例):如果标识符由多个单词组成,请不要在各单词之间使用分隔符,如下划线(“_”)或连字符(“-”)等。
而应使用大小写来指示每个单词的开头。
所有公共的成员如:方法、属性,都应使用Pascal大小写样式2.3、首缩写词的大小写规则2.3.1、首字母缩写词首字母缩写词是由术语或短语中各单词的首字母构成的单词。
例如,HTML 是 Hypertext Markup Language 的首字母缩写。
为了方便编码规范的实施,本文规定受字母缩写词必须至少为两个单词,正好为两个单词的首字母缩写词称其为“短型首字母缩写词”,两个单词以上的称其为“长型首字母缩写词”2.3.2、单缩写词单缩写词是一个单词的缩写。
例如,ID 是 identifier 的缩写。
注意:可在标识符中使用的两个缩写词是 ID 和 OK。
在采用 Pascal 大小写格式的标识符中,这两个缩写词的大小写形式应分别为 Id 和 Ok。
如果在采用大小写混合格式的标识符中将这两个缩写词用作首个单词,则它们的大小写形式应分别为 id 和 ok。
1.1.1、首字母缩写词有以下大小写规则:短型首字母缩写词在Pascal大小写样式中,两个字母都应大写。
在Camel大小写样式中,如果是首个单词,两个字母都应小写。
例如:名为 DBRate 的属性是一个采用 Pascal 大小写格式的标识符,它使用短型首字母缩写词 (DB) 作为首个单词。
名为 ioChannel 的参数是一个采用大小写混合格式的标识符,它使用短型首字母缩写词 (IO) 作为首个单词。
长型首字母缩写词,在任何大小写样式中都视为一个单词。
例如:名为 XmlWriter 的类是一个采用 Pascal 大小写格式的标识符,它使用长型首字母缩写词作为首个单词。
名为 htmlReader 的参数是一个采用大小写混合格式的标识符,它使用长型首字母缩写词作为首个单词。
1.1.2、复合词的大小写规则:所有复合词在任何大小写样式中都视为一个完整单词。
例如,hashtable 是一个紧凑格式的复合词,应将其视为一个单词并相应地确定大小写。
如果采用 Pascal 大小写格式,则该复合词为 Hashtable;如果采用大小写混合格式,则该复合词为 hashtable。
若要确定某个单词是否是紧凑格式的复合词,请查阅最新的词典。
1.1.3、区分大小写大小写准则只是为了使标识符更易于阅读和辨认。
不能将大小写规则用作避免库元素之间的命名冲突的手段。
2、通用命名约定2.1、通用命名约定讨论的是如何为库元素选择最适当的名称。
这些准则适用于所有标识符。
后面各节讨论特定元素(如命名空间或属性)的命名。
2.2、名称的选择与命名原则2.2.1、请选择易读的标识符名称例如,英文属性名称 HorizontalAlignment 比 AlignmentHorizontal 更具可读性。
2.2.2、可读性比简洁性更重要例如,属性名称 CanScrollHorizontally 比 ScrollableX(指 X 轴,但意义不明确)更好。
2.2.3、不要使用下划线、连字符或任何其他非字母数字字符2.2.4、不要使用匈牙利表示法匈牙利表示法是在标识符中使用一个前缀对参数的某些元数据进行编码,如标识符的数据类型。
2.2.5、避免使用与常用编程语言的关键字冲突的标识符虽然符合 CLS 的语言必须提供将关键字用作普通字的方法,最佳做法不要求强制开发人员了解如何实现。
对于大多数编程语言,语言参考文档都会提供语言所使用的关键字列表。
2.3、缩写和首字母缩写单词尽量避免使用缩写或首字母缩写词。
这类名称的可读性较差。
同样,要确定某个首字母缩写词是否已受到广泛认可也是很困难的。
不要将缩写或缩略形式用作标识符名称的组成部分。
例如,使用 OnButtonClick 而不要使用 OnBtnClick。
除非必要,不要使用任何未被广泛接受的首字母缩写词。
1.1、程序集和DLL的名称所有程序集名称都必须和项目的命名空间相对应。
1.2、命名空间的名称1.2.1、所有命名空间都需以公司名或产品名为根命名空间。
为命名空间选择的名称应指示命名空间中的类型所提供的功能。
例如,命名空间包含的类型允许开发人员使用套接字通过网络进行通信。
1.2.2、命名空间名称的一般格式如下:(<公司>|<产品>|<技术>)[.<性质>][.<子命名空间>]例如,。
1.2.3、命名空间和其中的类型不要使用相同的名称。
例如,不要在将“Debug”用作命名空间名称的同时,又在该命名空间中提供一个名为“Debug”的类。
1.2.4、命名空间一般准则不要引入宽泛的类型名称,如 Element、Node、Log 和 Message。
在通常情况下,这样极可能导致类型名称冲突。
应对宽泛的类型名称进行限定(例如 FormElement、XmlNode EventLog、SoapMessage)。
1.2.5、应用程序命名空间准则不要在单个应用程序模型内为命名空间中的多个类型指定相同的名称。
例如,如果要编写 Windows 窗体应用程序开发人员要使用的特殊控件库,则不应引入名为Checkbox 的类型,因为该应用程序模型已存在同名类型。
1.2.6、核心命名空间准则不要指定会与核心命名空间中的任何类型发生冲突的类型名称。
例如,不要使用 Directory 作为类型名称,因为这会与 Directory 类型冲突。
1.2.7、技术命名空间准则不要分配会与单个技术命名空间内的其他类型发生冲突的类型名称。
不要引入会导致技术命名空间的类型与应用程序模型命名空间中的类型发生冲突的类型名称(除非该技术不用于该应用程序模型)。
1.3、接口、类和结构的名称通常,类型名称应该是名词短语,其中名词是由类型表示的实体。
例如,Button、Stack 和 File 都具有名称,用于标识由类型表示的实体。
从开发人员的角度选择标识实体的名称;名称应反映使用场合。
下面的准则适用于如何选择类型名称:按照 Pascal 大小写格式,使用名词或名词短语(或偶尔使用形容词短语)为类、接口和值类型命名。
不要为类名加前缀(如字母 C)。
接口不适用此规则,它应以字母 I 开头。
考虑在派生类的末尾使用基类名称。
例如,从 Stream 继承的 Framework 类型以 Stream 结尾,从 Exception 继承的类型以 Exception 结尾。
为接口名称加上字母 I 前缀,以指示该类型为接口。
在定义类/接口对(其中类是接口的标准实现)时,一定要确保类和接口的名称除接口名称以字母 I 为前缀外,二者应完全相同。
例如,Framework 提供 IAsyncResult 接口和 AsyncResult 类。
用描述性名称为泛型类型参数命名,除非单个字母的名称已完全可以自我说明而无需描述性名称。
对具有一个单字母类型参数的类型,考虑将字母 T 用作这些类型的类型参数名称。
将字母T 作为描述性类型参数名称的前缀。
考虑在参数名称中指示置于类型参数上的约束。
例如,约束于 ISession 的参数可称为 TSession 。
2.4、常见类型的名称下面的准则提供的命名约定有助于开发人员了解某些类的使用场合:向自定义属性类添加 Attribute 后缀。
ObsoleteAttribute 和 AttributeUsageAttribute 是符合此准则的类型名称。
向在事件中使用的类型(如 C# 事件的返回类型)的名称添加 EventHandler 后缀。
AssemblyLoadEventHandler 是符合此准则的委托名称。
向不是事件处理程序的委托的名称添加 Callback 后缀。
事件处理程序一般以EventHandler 结尾 不要向委托添加 Delegate 后缀。
向扩展 的类添加 EventArgs 后缀。
不要从 类派生;使用当前所用语言支持的关键字。
例如,在 C# 中应使用 enum 关键字。
向从 继承的类型添加 Exception 后缀。
向实现IDictionary 或IDictionary<TKey, TValue> 的类型添加 Dictionary 后缀。
注意, 是特定类型的集合,但此准则的优先级高于以下更为一般的集合准则。
向实现IEnumerable 、ICollection 、IList 、IEnumerable< T>、ICollection<T>或IList<T> 的类型添加适当的说明性后缀。
向从 继承的类型或实现 的类型添加 Permission 后缀。
注意:以上准则中提及的从某个其他类型继承的类型,指的是所有的继承者,而不只是直接继承的类型。
例如,“向从 Exception 继承的类型添加 Exception 后缀”这一准则意味着在继承层次结构中具有 Exception 的任何类型都应该使用以 Exception 结尾的名称。
每条这样的准则还用来保留指定的后缀; 除非类型满足该准则表述的条件,否则不应使用该后缀。