您好,欢迎访问三七文档
11概述1.1规范制定原则方便代码的交流和维护。不影响编码的效率,不与大众习惯冲突。使代码更美观、阅读更方便。使代码的逻辑更清晰、更易于理解。1.2术语定义Pascal大小写将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用Pascal大小写。例BackColorCamel大小写标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如:backColor2代码外观2.1列宽代码列宽控制在110字符左右,原则上不超过屏宽。2.2换行当表达式超出或即将超出规定的列宽,遵循以下规则进行换行:在逗号,括号后换行。在操作符前换行。规则1优先于规则2。当以上规则会导致代码混乱的时候自己采取更灵活的换行规则。2.3缩进缩进应该是每行一个Tab(4个空格),不要在代码中使用Tab字符。2VisualStudio.Net设置:工具-选项-文本编辑器-C#-制表符-插入空格2.4空行空行是为了将逻辑上相关联的代码分块,以便提高代码的可阅读性。在以下情况下使用两个空行:接口和类的定义之间。枚举和类的定义之间。类与类的定义之间。在以下情况下使用一个空行:方法与方法、属性与属性之间。方法中变量声明与语句之间。方法与方法之间。方法中不同的逻辑块之间。方法中的返回语句与其他的语句之间。属性与方法、属性与字段、方法与字段之间。注释与它注释的语句间不空行,但与其他的语句间空一行。文件之中不得存在无规则的空行,比如说连续十个空行。空行是为了将逻辑上相关联的代码分块,以便提高代码的可阅读性。2.5空格在以下情况中要使用到空格:关键字和左括符“(”应该用空格隔开。如while(true)注意在方法名和左括符“(”之间不要使用空格,这样有助于辨认代码中的方法调用与关键字。多个参数用逗号隔开,每个逗号后都应加一个空格。除了.之外,所有的二元操作符都应用空格与它们的操作数隔开。一元操作符、++及--与操作数间不需要空格。如a+=c+d;a=(a+b)/(c*d);while(d++=s++){n++;}PrintSize(“sizeis“+size+“\n”);3语句中的表达式之间用空格隔开。如for(expr1;expr2;expr3)2.6花括号-{}左花括号“{”放于关键字或方法名的下一行并与之对齐。如if(condition){}publicintAdd(intx,inty){}左花括号“{”要与相应的右花括号“}”对齐。通常情况下左花括号“{”单独成行,不与任何语句并列一行。if、while、do语句后一定要使用{},即使{}号中为空或只有一条语句。如if(somevalue==1){somevalue=2;}右花括号“}”后建议加一个注释以便于方便的找到与之相应的{。如while(1){if(valid){}//ifvalidelse{4}//notvalid}//endforever3程序注释3.1注释概述修改代码时,总是使代码周围的注释保持最新。在每个例程的开始,提供标准的注释样本以指示例程的用途、假设和限制很有帮助。注释样本应该是解释它为什么存在和可以做什么的简短介绍.避免在代码行的末尾添加注释;行尾注释使代码更难阅读。不过在批注变量声明时,行尾注释是合适的;在这种情况下,将所有行尾注释在公共制表位处对齐。避免杂乱的注释,如一整行星号。而是应该使用空白将注释同代码分开。在部署发布之前,移除所有临时或无关的注释,以避免在日后的维护工作中产生混乱。如果需要用注释来解释复杂的代码节,请检查此代码以确定是否应该重写它。尽一切可能不注释难以理解的代码,而应该重写它。尽管一般不应该为了使代码更简单以便于人们使用而牺牲性能,但必须保持性能和可维护性之间的平衡。在编写注释时使用完整的句子。注释应该阐明代码,而不应该增加多义性。在编写代码时就注释,因为以后很可能没有时间这样做。另外,如果有机会复查已编写的代码,在今天看来很明显的东西六周以后或许就不明显了。避免多余的或不适当的注释,如幽默的不主要的备注。使用注释来解释代码的意图。它们不应作为代码的联机翻译。注释代码中不十分明显的任何内容。为了防止问题反复出现,对错误修复和解决方法代码总是使用注释。对由循环和逻辑分支组成的代码使用注释。这些是帮助源代码读者的主要方面。在整个应用程序中,使用具有一致的标点和结构的统一样式来构造注释。在所有的代码修改处加上修改标示的注释。3.2文件头注释说明所有文件开始添加如下注释,/*------------------------------------------------------------------------------*单元名称:*单元描述:*创建人:*创建日期:*修改日志5*修改人修改日期修改内容**----------------------------------------------------------------------------*/3.3文档型注释该类注释采用.Net已定义好的Xml标签来标记,在声明接口、类、方法、属性、字段都应该使用该类注释,以便代码完成后直接生成代码文档,让别人更好的了解代码的实现和接口。如///summaryMyMethodisamethodintheMyClassclass.///paraHere'showyoucouldmakeasecondparagraphinadescription.///seecref=System.Console.WriteLine////forinformationaboutoutputstatements.////para///seealsocref=MyClass.Main/////summarypublicstaticvoidMyMethod(intInt1){}3.4单行注释该类注释用于方法内的代码注释。如变量的声明、代码或代码段的解释。注释示例://注释语句privateintnumber;方法内变量的声明或花括号后的注释,注释示例:if(1==1)//alwaystrue{statement;6}3.5注释标签标签用法作用cctext/ctext希望将其指示为代码的文本。为您提供了一种将说明中的文本标记为代码的方法。使用code将多行指示为代码paraparacontent/paracontent段落文本。用于诸如remarks或returns等标记内,使您得以将结构添加到文本中。paramparamname='name'description/paramname为方法参数名。将此名称用单引号括起来('')。应当用于方法声明的注释中,以描述方法的一个参数。paramrefparamrefname=name/name要引用的参数名。将此名称用双引号括起来()。paramref标记为您提供了一种指示词为参数的方法。可以处理XML文件,从而用某种独特的方法格式化该参数。seeseecref=member/cref=member对可以通过当前编译环境进行调用的成员或字段的引用。编译器检查到给定代码元素存在后,将member传递给输出XML中的元素名。必须将member括在双引号()中。使您得以从文本内指定链接。使用seealso指示希望在“请参阅”一节中出现的文本。seealsoseealsocref=member/cref=member对可以通过当前编译环境进行调用的成员或字段的引用。编译器检查到给定代码元素存在后,将member传递给输出XML中的元素名。必须将member括在双引号()中使您得以指定希望在“请参阅”一节中出现的文本。使用see从文本exampleexampledescription/exampledescription代码示例的说明。使用example标记可以指定使用方法或其他库成员的示例。一般情况下,这将涉及到code标记的使用。codecodecontent/codecontent为希望将其标记为代码的文本。记为您提供了一种将多行指示为代码的方法。使用c指示应将说明中的文本标记为代码summarysummarydescription/summary此处description为对象的摘要。应当用于描述类型成员。使用remarks以提供有关类型本身的信息。exceptionexceptioncref=memberdescription/exceptioncref=member对可从当前编译环境中获取的异常的引用。编译器检查到给定异常存在后,将member转换为输出XML中的规范化元素名。必须将member括在双引号()中。description说明。exception标记使您可以指定类能够引发的异常。includeincludefile='filename'path='tagpath[@name=id]'/filename包含文档的文件名。该文件名可用路径加以限定。将filename括在单引号中('')。include标记使您得以引用描述源代码中类型和成员的另一文件中的注释。这是除了将文档注释直接置于源代码文件中之外的另一种可选方法。7Tagpath:filename中指向标记名的标记路径。将此路径括在单引号中('')。name注释前边的标记中的名称说明符;名称具有一个id。id位于注释之前的标记的id。将此id括在双引号中()。include标记使用XMLXPath语法。有关自定义include使用的方法,请参阅XPath文档。listlisttype=bullet|number|tablelistheadertermterm/termdescriptiondescription/description/listheaderitemtermterm/termdescriptiondescription/description/item/listterm定义的项,该项将在text中定义。description目符号列表或编号列表中的项或者term的定义。listheader块用于定义表或定义列表中的标题行。定义表时,只需为标题中的项提供一个项。列表中的每一项用item块指定。创建定义列表时,既需要指定term也需要指定text。但是,对于表、项目符号列表或编号列表,只需为text提供一个项。列表或表所拥有的item块数可以根据需要而定。permissionpermissioncref=memberdescription/permissioncref=member对可以通过当前编译环境进行调用的成员或字段的引用。编译器检查到给定代码元素存在后,将member转换为输出XML中的规范化元素名。必须将member括在双引号()中。description成员的访问的说明。permission标记使您得以将成员的访问记入文档。System.Security.PermissionSet使您得以指定对成员的访问。remarksremarksdescription/remarksdescription成员的说明。remarks标记是可以指定有关类或其他类型的概述信息的位置。summary是可以描述该类型的成员的位置。returnsreturnsdescription/returnsdescription返回值的说明。returns标记应当用于方法声明的注释,以描述返回值。valuevalueproperty-description/valueproperty-description属性的说明。value
本文标题:88C#编程规范
链接地址:https://www.777doc.com/doc-3661558 .html