C#程序编码规范

1.        目的

为了保证企业编写出的程序都符合相同的规范,保证一致性、统一性而建立的程序编码规范。


2.       范围


适用于企业所有基于.NET平台的软件开发工作。


3.       规范内容


3.1.    代码格式


u       所有的缩进为4个空格,使用VS.NET的默认设置。



u       在代码中垂直对齐左括号和右括号。


if(x==0)


              {


                   Response.Write("用户编号必须输入!");


              }


           不允许以下情况:


if(x==0) {


             


                   Response.Write("用户编号必须输入!");


              }


或者:


if(x==0){ Response.Write("用户编号必须输入!");}


 


u       为了防止在阅读代码时不得不滚动源代码编辑器,每行代码或注释在1024*800的显示频率下不得超过一显示屏


u       当一行被分为几行时,通过将串联运算符放在每一行的末尾而不是开头,清楚地表示没有后面的行是不完整的。


u       每一行上放置的语句避免超过一条。


u       在大多数运算符之前和之后使用空格,这样做时不会改变代码的意图却可以使代码容易阅读。


例:


        int j = i + k;


而不应写为


    int j=i+k;


u       将大的复杂代码节分为较小的、易于理解的模块。


u       编写 SQL 语句时,对于关键字使用全部大写,对于数据库元素(如表、列和视图)使用大小写混合。


u       将每个主要的 SQL 子句放在不同的行上,这样更容易阅读和编辑语句,例如: SELECT FirstName, LastName


                             FROM Customers


                  WHERE State = 'WA'


3.2.    注释(Comment)规范


注释规范包括:模块(类)注释规范、类的属性、方法注释规范、代码间注释


3.2.1. 模块(类)注释规范


模块开始必须以以下形式书写模块注释:


///


         ///模块编号:<模块编号,可以引用系统设计中的模块编号>


         ///作用:<对此类的描述,可以引用系统设计中的描述>


         ///作者:作者中文名


         ///编写日期:<模块创建日期,格式:YYYY-MM-DD>


         ///


如果模块有修改,则每次修改必须添加以下注释:


         ///


         ///Log编号: < SPAN> 编号 , 1 开始一次增加 >


         ///修改描述:<对此修改的描述>


         ///作者:修改者中文名


         ///修改日期:<模块修改日期,格式:YYYY-MM-DD>


         ///


3.2.2. 类属性注释规范


在类的属性必须以以下格式编写属性注释:


         ///


         ///属性说明


///

3.2.3. 方法注释规范


在类的方法声明前必须以以下格式编写注释


         ///


         /// 说明:<对该方法的说明>


         ///


          /// <参数说明>


         ///


         ///<对方法返回值的说明,该说明必须明确说明返回的值代表什么含义>


         ///


3.2.4. 代码间注释规范


代码间注释分为单行注释和多行注释:


         单行注释:


//<单行注释>


         多行注释:


         /*多行注释1


          多行注释2


          多行注释3*/


代码中遇到语句块时必须添加注释(if,for,foreach,……,添加的注释必须能够说明此语句块的作用和实现手段(所用算法等等)。


3.3.    变量(Variable)命名规范


3.3.1. 程序文件(*.cs)中的变量命名规则 


      
程序中变量名称 = 变量的前缀 +代表变量含意的英文单词或单词缩写。


1.
 
类模块级的变量请用“m_”作前缀


public class hello


{

         private string m_Name;


         private DateTime m_Date;

}


2.  类的属性所对应的变量,采用属性名前加“m_”前缀的形式


public class hello


{

     private string m_Name;


     public string Name


     {


         get


{


      return m_Name;


}


}


}


3.  过程级的变量不使用前缀


public class hello


{

         void say()


         {


                string SayWord;


}


}


4.  过程的参数使用“p_”作为参数


        public class hello


        {


               void say(string p_SayWord)


               {


               }


        }


补充说明:


        针对异常捕获过程中的Exception变量命名,在没有冲突的情况下,统一命名为e


如果有冲突的情况下,可以重复e,比如:ee


Try


{

         //your code


         try


{


//code


}


catch(Exception ee)


{


//your code


}


}


catch(Exception e)


{


         //your code


}


补充:如果捕获异常不需要作任何处理,则不需要定义Exception实例


例:


try


{


         //your code


}


catch( Exception )


{


}


5.  鉴于大多数名称都是通过连接若干单词构造的,请使用大小写混合的格式以简化它们的阅读。每个单词的第一个字母都是大写.


6.  即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如 i j


7.  在变量名中使用互补对,如 min/maxbegin/end open/close


8.  不要使用原义数字或原义字符串,如 For i = 1 To 7。而是使用命名常数,如 For i = 1 To NUM_DAYS_IN_WEEK 以便于维护和理解。


3.3.2. 控件命名规则


      控件命名=Web控件缩写前缀  + _ +变量名


控件

缩写

Label

lbl

TextBox

txt

CheckBox

chk

Button

cmd

ListBox

lst

DropDownList

drp

 等等

 


3.4.    常量命名规范


常量名也应当有一定的意义,格式为 NOUN NOUN_VERB。常量名均为大写,字之间用下划线分隔。


例:


        private const bool   WEB_ENABLEPAGECACHE_DEFAULT           = true;


        private const int    WEB_PAGECACHEEXPIRESINSECONDS_DEFAULT = 3600;


        private const bool   WEB_ENABLESSL_DEFAULT                 = false;


  注:


变量名和常量名最多可以包含 255 个字符,但是,超过 25 30 个字符的名称比较笨拙。此外,要想取一个有实际意义的名称,清楚地表达变量或常量的用途,25 30 个字符应当足够了。


  3.5.    类(Class)命名规范


1.    名字应该能够标识事物的特性。


2.    名字尽量不使用缩写,除非它是众所周知的。


3.    名字可以有两个或三个单词组成,但通常不应多于三个。


4.    在名字中,所有单词第一个字母大写。


         例如    IsSuperUser,包含ID的,ID全部大写,如CustomerID。


5.    使用名词或名词短语命名类。


6.    少用缩写。


7.    不要使用下划线字符 (_)。


例:

public class FileStream
   
   
public class Button
   
   
public class String
    
    

   
   
    
    
   
   

  
  
   
   
  
  

3.6.    接口(Interface)命名规范


      和类命名规范相同,唯一区别是  接口在名字前加上“I”前缀


    例:


    interface IDBCommand;


    interface IButton;


3.7.    方法(Method)命名规范


      和类命名规范相同。


3.8.    命名空间(NameSpace)命名规范


      和类命名规范相同。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值