编码命名规范(NET)(很全,很实用).doc_第1页
编码命名规范(NET)(很全,很实用).doc_第2页
编码命名规范(NET)(很全,很实用).doc_第3页
编码命名规范(NET)(很全,很实用).doc_第4页
编码命名规范(NET)(很全,很实用).doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编码命名规范(.NET)(很全,很实用)一、命名约定1.常用命名术语说明 Pascal命名格式 将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用 Pascal 大小写。例如:BackColor Camel命名格式 标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如:backColor2.名称空间命名 创建命名空间的名称时应使用以下原则: “公司名称.技术名称.软件产品代号”或“公司名称.产品技术代号” 例如:Nd.ClassLibrary.Charting 命名空间就表示Nd公司里的公用类库里的Charting画图类库。 又如:Net91com.Movies.DataAccess 名称空间标识 91.COM 电影站的数据访问层程序集。3.类命名使用完整的单词,避免用缩写。比如ButtonGrid比BtnGrd要长,但是完整从而可读性好。 一般使用名词。类通常表示一种对象,而对象一般使用具有名词性质的名称。 异常类命名:类以Exception结尾, 比如class EQException: Exception4.局部变量命名 私有字段、函数参数和函数内部声明的变量使用camel Casing 不使用的是用以指明字段作用域的前缀。如 s_作为共享字段或静态字段的前缀,以及把g_作为全局变量的前缀。 不使用用以指明数据类型的匈牙利前缀表示法,如(strReturn)。在Microsoft Visual Studio .NET环境中,只要在代码编辑器中将鼠标移到域名上,就可以得到关于字段或变量的类型信息。另外,类型前缀限制了开发者在需要时改变变量的类型的能力,或者更糟糕的是,开发者改变了变量的类型,却没有为变量重新命名,从而产生具有误导性的代码。5.只读静态变量 Pascal大小写6.类私有变量 _ + Pascal大小写。如:_BackColor7.属性命名使用Pascal Casing。 属性名称通常都是名词。例如Text、SelectedIndex和Width。8.接口命名 使用Pascal Casing。 在接口名称前缀添加前缀 I 。 接口名称尽量具有描述性,并使用形容词,因为接口常常用于给一个类添加某种能力。基于形容词的名称有IComparable和IFormattable等9.方法命名 使用Pascal Casing。 方法名通常是动词。方法实现一个对象的行为功能。方法执行某些操作。方法名的例子有Read、Write、Start和Stop。 当重载方法时,参数的顺序和命名要一致。 定义方法名时不要使用缩写。 方法参数 Camel大小写结构10.事件命名 使用Pascal Casing。 事件名称通常是动词。比如Click、Load和Paint11.枚举类型使用Pascal Casing。如:EQFormatConditionOperator。枚举值也是Pascal,比如EQFormatConditionOperator. Equal12.委托命名delegate AfterOperationHandler,总是以Handler为后缀结尾13.类对象命名 使用obj前缀Pascal命名的方式,来告知我们这个变量是一个对象 比如:EQApplication objApp = new EQApplication();14.Attribute Pascal大小写,并以Attribute结尾15.控件命名ButtonbtnbtnOKCalendarcalCheckBoxchkchkReadOnlyCheckBoxListchklCompareValidatorvalcCustomValidatorvalxDataGridgridDataListlistDropDownListddlHyperLinklnkImageimgImageButtonibtnLabellblLinkButtonlbtnListBoxlstPanelpnlRadioButtonradRadioButtonListradlRangeValidatorvalgRegularExpressionvaleRequiredFieldValidatorvalrTabletblTableCelltblcTableRowtblrTextBoxtxttxtLastNameValidationSummaryvals 16.其它命名ConnectionconnCommandcmdParameterparamDataAdapteradptDataReaderdrDataSetdsDataTabledtDataRowrowDataColumncolDataRelationrelDataViewdv17.注意: 不要使用两个字母一样,但大小写不一样的命名来做命名空间,否则在一些不区分大小写的语言里将不能正确区分这些命名空间声明。例如:namespace ee.cummings和namespace EE.cummings这两个声明 不要使用大小写区分参数的形式来创建方法。比如:void MyFunction(string a, string A) 不要使用大小写的不同来分别命名一个属性。比如: int Color get,set int COLOR get,set 不要使用大小写的不同来分别命名一个方法的名字。比如: void calculate() void Calculate() 不要使用标志名称的一部分作为该标志名称的缩写或简写。比如:GetWindow简写为GetWin。 尽量避免用缩写方式来对方法的参数命名,即方法的参数命名尽量保持完整,让人一目了然。 尽量避免就一个字母的命名,如 i 或 t,而用 index 或 temp二、代码格式化1.的位置 与各单独占一行。例如: if(x 5) /代码 2.if、if else的格式 if(condition) DoSomething(); if(condition) DoSomething(); else DoSomethingOther(); if(condition) DoSomething(); else if(condition) DoSomethingOther(); else DoSomethingOtherAgain(); 3.for、foreach的格式 /for格式 for(int i = 0; i 5; +i) / 代码 /foreach的格式 foreach(int i in IntList) / 代码 4.whileswitch的格式 /while格式 while(condition) / 代码 /switch的格式 switch(condition) case A: . break; case B: . break; default: . break; 5.try的格式 try . catch(Exception e) . /或者 try . catch(Exception e) . finally . 6.空格 对于有两个或两个以上空格时,一般不要使用空格来表示缩进,使用Tab 逗号、分号之后有一个空格 如:TestMethod(a, b, c); 操作符前后有一个空格,但是单目运算符除外(例如: !运算符)。 如:for(int i = 0; i 10; +i)7.在执行统一任务的各个语句组之间插入一个空行。8.名称空间写法,各类名称空间插入空行,同一类命命空间按字母序号排列 如: using System; using System.Text; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using net91com.Movies.DataAccess; using net91com.Movies.Business; using net91com.CommonComponent;三、代码注释1.注释的目的 a. 文字说明代码的作用 (即为什么要用编写该代码,而不是如何编写); b. 确指出该代码的编写思路和逻辑方法 ; c. 人们注意到代码中的重要转折点 ; d. 使代码的阅读者不必在他们的头脑中仿真运行代码的执行方法2.对类文件进行属性注释说明 /= / 公司: / 项目名称: / 模块名称: / 开发人员: / 开发日期: / 功能简介: / 最后修改时间: / 修改人员: /=3.避免对很显然易懂的语句进行注释说明4.代码应该能作到自我解释代码作用的功能。5.注释来说明何时可能出错和为什么出错6.在编写代码前进行注释,给类、属性或方法前面加上功能注释7.注释的内容 a.实参/ 参数 参数类型 , 参数用来做什么, 任何约束或前提条件b.字段/属性 字段描述 , 注释所有使用的不变量, 并行事件可见性决策 c.类 类的目的 ,已知的问题 , 类的开发/维护历史 , 注释出采用的不变量 , 并行策略 d.接口 目的 它应如何被使用以及如何不被使用 e.局部变量 用处/目的f.成员函数注释 成员函数做什么以及它为什么做这个 哪些参数必须传递给一个成员函数 成员函数返回什么 已知的问题 任何由某个成员函数抛出的异常 可见性决策 成员函数是如何改变对象的 包含任何修改代码的历史 如何在适当情况下调用成员函数的例子适用的前提条件和后置条件 g.成员函数内部注释 控制结构 代码做了些什么以及为什么这样做 局部变量 难或复杂的代码 处理顺序8.增强注释的可读性 a. 使用完整的语句。 b. 避免使用缩写。 c. 将整个单词大写,以突出它们的重要性。9.请在每个if语句/switch语句/循环语句的前面加上注释四、类/接口成员设计1.设计类和方法时的原则 创建更加容易调试和维护的方法 创建具有强大内聚力的类 创建高度专用的方法 创建松散连接的方法 尽量使方法具有独立性 提高方法的扇入性 降低方法的扇出性2.名称空间引用 using 声明一律以.NET基础框架命名空间、第三方组件命名空间、最后是公司内部产品命名空间排序。using System; using System.Collections; using Microsoft.CSharp; using Sirc.Egss.FileExchangeServer;3.成员排列规则 尽量不要使用类public变量,用属性代替 类成员以internal、private、protected、public排列。public部分按照构造函数、属性、方法、事件的顺序排列。4.每个类文件名应尽量保持与内部类名一致5.尽量避免手动去修改工具环境自动生成的代码6.避免在一个类文件里放置多个类7.一个类文件里应该有且仅有一个命名空间,避免在一个类文件里包含多个不同的命名空间8.避免在一个类文件里代码超过 500 行(除去自动生成的代码)9.数据结构里,应该总是更倾向使用C#的范型generic10.尽量缩小变量的作用域11.接口设计 将接口名去掉 I 前缀后,作为这种默认实现类的名称。比如IComponent的默认实现类是Component 每个接口不应当有超过20个成员的情况,一般应保持在12个左右12.方法设计 创建松散连接和高度专用的方法 创建方法时,设法将每个方法视为一个黑箱,其他例程不应要求了解该方法的内部工作情况,该方法也不应要求了解它外面的工程情况。这就是为什么你的方法应依靠参数而不应依靠全局变量的原因。 a.将复杂进程放入专用方法。 b.将专用方法中可能要修改的代码隔离。 c.将数据输入/输出(I/O)放入专用方法。 d.将业务规则封装在专用方法中。 e.有返回值的方法必须在方法命名里包含对该返回值的信息描述,如GetObjectStat()。 f.局部变量的声明,应尽可能紧靠在它首次被使用的地方 g.一个方法里的代码避免超过 25 行,最多不能超过 50 行(除去空行、注释) h.一行代码最多不要超过 80 个字符 i.避免使用强制转换,推荐使用as操作符进行防御性转换 j.当需要创建一个长字符串时,推荐使用StringBuilder,而非string k.避免使用不易理解的数字,用有意义的标识来替代(枚举和常量)13.属性设计避免使用返回数组的属性。这些属性会降低程序的效率 不要提供public或protected型的成员变量,而应当使用属性替代之 五、数据库设计规范数据库名 Pascal C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论