您好,欢迎访问三七文档
C#编码规范..............................................................-2-1文件组织...........................................................-2-1.1C#源文件.....................................................-2-1.2目录安排.....................................................-2-2缩进..............................................................-2-2.1分行.........................................................-2-3注释..............................................................-2-3.1块注释.......................................................-2-3.2单行注释.....................................................-3-3.3文档注释.....................................................-3-4声明..............................................................-3-4.1每行声明的数量...............................................-3-4.2初始化.......................................................-3-4.3类和接口的声明...............................................-3-5语句..............................................................-4-5.1简单语句.....................................................-4-5.2返回语句.....................................................-4-5.3If,if-else,ifelse-ifelse语句........................-5-5.4for/foreach语句...........................................-5-5.5while/do–while语句.....................................-6-5.6switch语句.................................................-6-5.7try–catch语句............................................-6-5.8属性.........................................................-7-5.9枚举.........................................................-8-6空白..............................................................-8-6.1空行.........................................................-8-6.2内部空格.....................................................-8-7命名约定...........................................................-9-7.1ADO.NET命名规范.............................................-9-7.2WebControl命名规范.........................................-9-7.3变量........................................................-10-7.4其他........................................................-10-8编程实践..........................................................-11-8.1书写顺序....................................................-11-8.2成员可视性..................................................-11-8.3功能单一....................................................-12-8.4使用枚举....................................................-12-8.5捕获异常....................................................-13-9.其他注意事项.....................................................-13--2-C#编程规范1文件组织1.1C#源文件把每个类都放在单独的文件中,文件名字和类名一致(用.CS作为扩展名)。类文件不要太长,不要超过2000LOC。必要时,分割代码,使结构更清晰。1.2目录安排为每个命名空间创建一个目录(如,对于MyProject.TestSuite.TestTier使用MyProject/TestSuite/TestTier作为路径,不要使用带“.”的命名空间)。这样更易于映射命名空间到目录。2缩进2.1分行如果表达式不适合单行显示,应根据下面通常的原则分行:在一个逗号后换行在一个操作符后换行在表达式的高层次处换行新行与前一行在同一层次,并与表达式的起始对齐方法分行的例子:longMethodCall(expr1,expr2,expr3,expr4,expr5);算术表达式分行的例子:好的:var=a*b/(c–g+f)+4*z;坏的风格,要避免:var=a*b/(c–g+f)+4*z;第一个是好的,因为分行符合高层次规则。3注释3.1块注释通常要避免块注释,而使用C#标准的///注释来描述。如果希望使用块注释,应该使用下面的风格:/*Line1*Line2-3-*Line3*/块注释很少使用,通常是用来注释掉大块的代码。3.2单行注释应该使用//注释掉一行代码,也可以用它注释掉代码块。当单行注释用来做代码解释时,必须要缩进到与代码对齐。3.3文档注释单行XML注释的形式如下:///summary///Thisclass…////summary多行XML注释的形式如下:///exceptioncref=”BogusException”///Thisexceptiongetsthrownassoonasa///Bogusflaggetsset.////exception4声明4.1每行声明的数量建议每行只有一个声明,还方便注释,如:intlevel;//indentationlevelintsize;//sizeoftable变量的命名意义要明确。如果能够自解释,如indentLevel,就不用注释。不好的:inta,b;//Whatis‘a’?Whatdoes‘b’standfor?4.2初始化尽量在局部变量声明时进行初始化,例如:stringname=myObject.Name;或intval=time.Hours;注意:初始化对话框时,尽量使用语句:Using(OpenFileDialogopenFileDialog=newOpenFileDialog()){……}4.3类和接口的声明-4-当写C#类和接口时,应按照下面的格式规则:在方法名字和参数列表的起始括号“(”之间没有空格开括号“{”应出现在声明语句之后的下一行闭括号“}”自己占一行,并缩进到对应的开括号位置例如:classMySample:MyClass,IMyInterface{intmyInt;publicMySample(intmyInt){this.myInt=myInt;}voidInc(){++myInt;}voidEmptyMethod(){}}5语句5.1简单语句每行应该只包含一个语句。5.2返回语句返回语句不应该带有最外面的括号。不应该使用:return(n*(n+1)/2);应该使用:returnn*(n+1)/2;-5-5.3If,if-else,ifelse-ifelse语句if,if–else和ifelse–ifelse语句应该按照下面格式:if(condition){……}if(condition){……}else{……}if(condition){……}elseif(condition){……}else{……}注意:即使某条件下只有一个语句,也要使用大括号“{”“}”。后面的循环等语句也一样。5.4for/foreach语句for语句形式如下:for(inti=0;i5;++i){……}或者使用单行形式:-6-for(initialization;condition;updat);单行形式可考虑使用while语句代替。foreach语句如下:foreach(intiinintList){……}5.5while/do–while语句while语句如下:while(condition){……}空的while语句形式如下:while(condition);do–while语句如下:do{……}while(condition);5.6switch语句switch语句形式如下:switch(condition){caseA:……break;caseB:……break;default:……break;}5.7try–catch语句try–catch语句形式如下:-7-try{……}catch(Exceptione){……}或者try{……}catch(Exceptione){……}finally{……}5.8属性属性形式如下:publicstringName{get{……}set{……}}对于抽象属性:publicstringName{-8-get;set;}5.9枚举枚举形式如下:publicenumColor{Red,Green,Blue}6空白6.1空行使用空行按照逻辑关系分隔代码,能提高可读性。在下面元素之间要使用一个空行:构造函数属性方法方法内的逻辑块6.2内部空格在逗号或分号之后应该有一个空格,例如:应该使用:TestMethod(a,b,c);不应该使用:TestMethod(a,b,c);或者TestMethod(a,b,c);操作符两边要有一个空格(递增和逻辑否等一元操作符除外),例如:应该使用:a=b;不应该使用:a=b;应该使用:for(inti=0;i10;++i)不应该使用:for(inti=0;i10;++i)或者for(inti=0;i10;++i)-9-7命名约定7.1ADO.NET命名规范数据类型数据类型简写标准命名举例ConnectionconconN
本文标题:C#编程规范
链接地址:https://www.777doc.com/doc-3258171 .html