




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
。 精选资料,欢迎下载 C#C#开发规范开发规范 版本版本更新时间更新时间修改人修改人备注备注 V1.02016wp 。 精选资料,欢迎下载 目目 录录 术语.3 文件命名.3 代码外观.4 程序注释.6 对象声明.8 代码规范.9 命名规范.9 语句规范.17 开发建议.20 。 精选资料,欢迎下载 术语术语 PascalPascal 大小写大小写:将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三 字符或更多字符的标识符使用 Pascal 大小写。例如:BackColor CamelCamel 大小写大小写:标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如: backColor 文件命名文件命名 文件名遵从 Pascal 命名法,无特殊情况,扩展名小写。 文件开始包含类似以下注释说明 /* / 文件名: / 文件功能描述: / 创建人: / 创建时间: / 描述: / 修改人: / 修改时间: / 修改描述: /*/ 文件功能描述着重于描述文件功能与说明,详情应在类的注释中描述。 一天内有多个修改只需做做一个修改标识,在所有的代码修改处加上修改标识的注释。 。 精选资料,欢迎下载 代码外观代码外观 列宽列宽 代码列宽控制在 100 字符左右。 代码换行,换行后的代码应该缩进一个 Tab。 换行换行 当表达式超出或即将超出规定的列宽,遵循以下规则进行换行 在逗号后换行。 在操作符前换行。 规则 1 优先于规则 2。 当以上规则会导致代码混乱的时候自己采取更灵活的换行规则。 缩进缩进 缩进应该是每行一个 Tab(4 个空格),不要在代码中使用 Tab 字符。 空行空行 在以下情况下使用两个空行 接口和类的定义之间。 枚举和类的定义之间。 类与类的定义之间。 在以下情况下使用一个空行 方法与方法、属性与属性之间。 方法中变量声明与语句之间。 方法与方法之间。 方法中不同的逻辑块之间。 方法中的返回语句与其他的语句之间。 属性与方法、属性与字段、方法与字段之间。 注释与它注释的语句间无空行,但与其他的语句空一行。 空格空格 在以下情况中要使用到空格 关键字和左括号(应该用空格隔开。 在方法名和左括号 ( 之间不要使用空格。 多个参数用逗号隔开,每个逗号后都应加一个空格。 除了 . 之外,所有的二元操作符都应用空格与它们的操作数隔开。 一元操作符、+及-与操作数间不需要空格。 语句中的表达式之间用空格隔开。如 for (expr1; expr2; expr3) 括号括号 左括号(不要紧靠关键字,中间用一个空格隔开。 左括号(与方法名之间不要添加任何空格。 没有必要的话不要在返回语句中使用()。 花括号花括号 左花括号放于关键字或方法名的下一行并与之对齐。 左花括号要与相应的右花括号 对齐。 通常情况下左花括号单独成行,不与任何语句并列一行。 if、while、do、for 语句后一定要使用,即使号中为空或只有一条语句。 右花括号 后加一个注释以便于方便的找到与之相应的。 。 精选资料,欢迎下载 块语句块语句 将大的复杂代码节分为较小的、易于理解的模块。 当一行被分为几行时,将运算符放在行的末尾,标识行是不完整的。 在代码中垂直对齐左括号和右括号。 if (x = 0) 不允许以下情况: if (x = 0) if (x = 0) xxx; 程序注释程序注释 注释原则注释原则 注释应该是解释为什么和做什么,而不是介绍是什么。 修改代码时,总是使代码周围的注释保持最新。 变量声明时,使用行尾注释是合适的;其他情况下,使用单行注释。 避免杂乱的注释,如一整行星号。而是应该使用空白将注释同代码分开。 在部署发布之前,移除所有临时或无关的注释,避免维护工作中产生混乱。 如果需要用注释来解释复杂的代码节,先检查代码是否应该重写。 在编写注释时使用完整的句子。注释应该阐明代码,而不应该增加多义性。 避免多余的或不适当的注释。 注释代码中不十分明显的任何内容。 为了防止问题反复出现,对错误和解决方法总是使用注释。 对由循环和逻辑分支组成的代码使用注释。 使用具有一致的风格和语言来构造注释。 用空白将注释同注释分隔符分开。 新增代码行的前后要有注释行说明,对具体格式不作要求,但必须包含作者,新增时 间,新增目的。在新增代码的最后必须加上结束标志; 善于运用#region,#endregion。 单行注释单行注释 用于方法内的代码注释。如变量的声明、代码或代码段的解释。示例: / 注释语句 private int number; 方法内变量的声明或花括号后的注释,示例: / always true if ( 1 = 1) statement; / always true 多行注释:多行注释: 该类注释用于说明一段代码的逻辑、运算步骤、注意事项等需要详细说明的内容。 /* statement description * statement description 。 精选资料,欢迎下载 * statement description */ statement; 文档注释文档注释 .Net 预定义 Xml 标签来标记对象说明,在声明接口、类、方法、属性、字段都应该使 用该类注释。 / / 方法描述 / / 参数说明 / 返回值说明 public static void Method(string key) return ; 类注释类注释 模块开始尽量以以下形式书写模块注释: /* / 类名: / 功能描述: / 创建人: / 创建时间: / 描述: / 修改人: / 修改时间: / 修改描述: /*/ 注意:类的修改应该在注释中添加修改记录,且记录累加。 属性注释属性注释 在类的属性必须以以下格式编写属性注释: / /属性说明 / 方法注释方法注释 在类的方法声明前必须以以下格式编写注释: / / 函数的作用 / / /异常类型、异常结果说明(为什么产生此异常) 对象声明对象声明 变量声明变量声明 。 精选资料,欢迎下载 建议一行只作一个声明。示例: int level; /推荐 int size; /推荐 int x, y; /不推荐 在变量声明时就对其做初始化。 变量声明置于块的开始处,不要总是在第一次使用它们的地方做声明。例外: for (int i = 0; i len; i+) 避免不同层次间的变量重名 类、接口声明类、接口声明 在方法名与其后的左括号间没有任何空格。 左花括号出现在声明的下行并与之对齐,单独成行。 方法间用一个空行隔开。 字段声明字段声明 不要使用是 public 或 protected 的字段。 如果需要将字段公开,请使用属性 代码规范代码规范 命名规范命名规范 命名由字母、数字和_组成。命名是为了帮助人们阅读。 避免使用系统保留字。 应选择正确的名称,能够表明功能或定义目的。 在编程上通过命名可以将各项明确的区分开来。 避免容易被主观解释的难懂的名称,避免歧义。 只要合适,在变量名的末尾或开头加计算限定符。 在一组相关变量的命名中使用互补对,如 min/max、begin/end 和 open/close。 布尔变量名应该包含 Is,这意味着 Yes/No 或 True/False 值。 在命名状态变量时,避免使用诸如单纯 Flag 或 Status 的术语。 不要使用匈牙利语表示法。 大小写规则大小写规则 大写 标识符中的首字母大写,仅对于由两个或者更少字母组成的标识符使用该约定。示例: System.IO System.Web.UI 下表汇总了大写规则,并提供了不同类型的标识符的示例。 标识符大小写示例 类 PascalAppDomain 枚举类型 PascalErrorLevel 枚举值 PascalFatalError 事件 PascalValueChange 异常类 Pascal WebException 总是 Exception 后缀结尾。 静态字段 PascalRedValue 接口 Pascal IDisposable 总是 I 前缀开始。 。 精选资料,欢迎下载 方法 PascalToString 命名空间 PascalSystem.Drawing 属性 PascalBackColor 公共实例字段 Pascal RedValue 属性优于使用公共实例字段。 受保护的实例字段 Camel redValue 属性优于使用受保护的实例字段。 私有的实例字段 CamelredValue 参数 CameltypeName 方法内的变量 CamelbackColor 缩写缩写 不要将缩写或缩略形式用作标识符名称的组成部分。 不要使用计算机领域中未被普遍接受的缩写。 在适当的时候,使用众所周知的缩写替换冗长的词组名称。例如 UI 或 OLAP。 使用缩写时,对于超过两个字符长度的缩写请使用 Pascal 大小写或 Camel 大小写, 但应当大写仅有两个字符的缩写,如 System.IO 而不是 System.Io。 不要在标识符或参数名称中使用缩写。 命名空间命名空间 命名空间使用公司名.项目名称,后续可添加按技术名称和功能、模块名称。 命名空间和类不能重名。 类类 用名词或名词短语命名类。 使用全称避免缩写,除非缩写已是一种公认的约定,如 URL、HTML 不要使用类型前缀。 不要使用下划线字符(_)。 接口接口 接口命名与类相同,唯一区别是给接口名称加上大写字母 I 前缀。 枚举枚举 (Enum)(Enum) 不要在 Enum 类型名称上使用 Enum 后缀,可根据使用场景添加后缀限定。 对大多数 Enum 类型使用单数名称,但是对作为位域的 Enum 类型使用复数名称。 总是将 FlagsAttribute 添加到位域 Enum 类型。 参数参数 使用描述性词语定义参数名称。 使用描述参数的含义的名称,而不要使用描述参数的类型的名称。 方法方法 使用动词或动词短语命名方法。 返回值是 Bool 值的方法以 Is 开头; 属性属性 使用名词或名词短语命名属性。 返回值是 Bool 值的属性以 Is 开头; 考虑用与属性的基础类型相同的名称创建属性。 事件事件 使用动词、动名词描述事件名称。 对委托定义使用 Event 后缀。 对事件定义使用 EventHandler 后缀。 。 精选资料,欢迎下载 用 EventArgs 后缀命名事件参数类。 不要在非动作事件声明上使用 on 前缀。 常量常量 (const)(const) 所有单词大写,多个单词之间用下划线字符(_)隔开。 字段字段 禁止使用 public 修饰字段。 private、protected 使用 Camel 大小写。 属性的私有变量添加下划线字符(_)前缀 静态字段静态字段 使用名词、名词短语或者名词的缩写命名静态字段。 尽可能使用静态属性而不是公共静态字段。 集合集合 集合的命名建议用复数形式。 措词措词 避免使用与常用的.NET 框架命名空间类名称冲突。 避免使用和 C#关键字冲突的标识符。 语句规范语句规范 单行语句单行语句 每行最多包含一个语句。如 a+; /推荐 b-; /推荐 a+; b-; /不推荐 复合语句复合语句 复合语句是指类似“父语句子语句;子语句;”的语句,要求: 子语句要缩进。 左花括号 在复合语句父语句的下一行并与之对齐,单独成行。 即使只有一条子语句要不要省略花括号 。 如 while (d + = s+) n+; 表达式表达式 避免在表达式中用赋值语句 避免对浮点类型做等于或不等于判断 类型转换类型转换 尽量避免类型转换。 如果不得不进行类型转换,尽量用显式方式。 returnreturn 语句语句 return 语句中不使用括号,除非它能使返回值更加清晰。如 return; return myDisk.size(); 。 精选资料,欢迎下载 return (size ? size : defaultSize); ifif、 if-elseif-else、ifif else-ifelse-if 语句语句 if (condition) statements; if (condition) statements; else statements; if (condition) statements; else if (condition) statements; else statements; forfor、foreachforeach 语句语句 for (initialization; condition; update) statements; foreach (object obj in array) statements; 注意: 在循环过程中不要修改循环计数器。 禁止出现空循环。 whilewhile 语句语句 while (condition) 。 精选资料,欢迎下载 statements; dodo - - whilewhile 语句语句 do statements; while (condition); switchswitch - - casecase 语句语句 switch (condition) case 1: statements; break; case 2: statements; break; default: statements; break; 注意: 语句 switch 中的每个 case 各占一行。 语句 switch 中的 case 按字母顺序排列。 为所有 switch 语句提供 default 分支。 所有的非空 case 语句必须用 break; 语句结束。 trytry - - catchcatch 语句语句 try statements; catch (ExceptionClass e) statements; finally statements; usingusing 块语句块语句 。 精选资料,欢迎下载 using (object) statements; gotogoto 语句语句 禁止使用 goto 语句 开发建议开发建议 1.程序充分测试绝对是有必要的 2.发布时生成 Release 版本,Web 站点禁用调试模式 3.类内函数、属性和变量的调用在前面加上 this. 4.静态元素(元素包括变量和方法)的调用,一定要加类名避免阅读混乱。 5.引用类型转换:使用 as 运算符,优点是转换不成功时,返回值为 null,不抛出异常。 6.避免在循环中创建对象,在需要逻辑分支中创建对象,使用常量避免创建对象 7.避免循环次数为 1 的循环。 8.使用变量保存中间数据,而不是每次都计算,避免不必要的损失性能。 9.在需要大量字符串连接的时候,使用 StringBuilder 类。 10. 如果能计算出字符串长度的话,则按这个长度来设定 StringBuilder 类 Buffer 的初 值。 11. 在需要使用格式化字符串时,使用 String.Format 而不是使用字符串相加。 12. 尽量避免数据类型转换,避免装箱和拆箱,使用值类型的 ToString 方法 13. 禁止使用 ASP.NET 中的服务器端控件,在 MVC 中已经没有这些内容了。 14. Aspx 使用 asp:Repeater 控件或者使用模板/字符串输出,让代码输出格式可控。 15. 用 asp:Literal 替换 asp:Label,asp:Literal 输出是干净的。 16. 少用 PostBack 机制,多用 Ajax 17. 浮点运算 Float 并不比 Double 要快,当转换为 Int 时,Double 可能更高。 18. 右移和预计算优化是有效的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职场规范2025年网络规划设计师考试的课程框架及试题及答案
- 面向考试的学习方法系统试题及答案
- 社会服务的评价标准试题及答案解读
- 从容面对多媒体应用设计师考试试题与答案
- 肺胀试题及答案
- 2025年软件评测师知识点分析试题及答案
- 修理网点管理制度
- 十四项护理管理制度
- 乡镇门诊管理制度
- 开学后学生管理制度
- 外研版(三起)小学英语三年级下册Unit 1 Animal friends Get ready start up 课件
- 导数中的同构问题【八大题型】解析版-2025年新高考数学一轮复习
- 2024年中国海鲜水饺市场调查研究报告
- 肠内外营养护理要点
- 2019版人教版新课标高中英语选择性必修1词汇表带音标单词表+带音标汉译英默写+无音
- 机械设备故障应急预案与处理措施
- 一个人与公司合伙协议书范文
- 中国生殖支原体感染诊疗专家共识(2024年版)解读课件
- 气压传动课件 项目五任务三 压印设备气动系统的组装与调试
- 2024年法律职业资格考试(试卷一)客观题试卷与参考答案
- 户外空调外机清洗的安全协议书
评论
0/150
提交评论