zoukankan      html  css  js  c++  java
  • C#编程规范(2008年4月新版)


    http://www.cnblogs.com/china-aspx/archive/2008/04/14/1152186.html

     

    1 代码格式

    1.1 所有的缩进为4个空格,使用VS.NET的默认设置,设置方式如下图:

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

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

      不允许以下情况:

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

      或者:

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

    1.3 为了防止在阅读代码时滚动源代码编辑器,每行代码或注释在1024*800的显示频率下不得超过一显示屏。
    1.4 当一行被分为几行时,通过将串联运算符放在每一行的末尾而不是开头,清楚地表示没有后面的行是不完整的。
    1.5 每一行上放置的语句不得超过一条。
    1.6 在大多数运算符之前和之后使用空格,这样做时不会改变代码的意图却可以使代码容易阅读。
      例:

      int j = i + k;

      而不应写为

      int j=i+k;

    1.7 将大的复杂代码节分为较小的、易于理解的模块。
    1.8 编写 SQL 语句时,对于关键字使用首字母大写,对于数据库元素(如表、列和视图)使用大小写混合。
    1.9 将每个主要的 SQL 子句放在不同的行上,这样更容易阅读和编辑语句,例如:

      SELECT FirstName, LastName
      
    FROM Customers
      
    WHERE State = 'WA'

    2 注释(Comment)规范

      注释规范包括:模块(类)注释规范、类的属性、方法注释规范、代码间注释。
    2.1 模块(类)注释规范
      模块开始必须以以下形式书写模块注释:

    ///
    ///模块编号:<模块编号,可以引用系统设计中的模块编号>
    ///作用:<对此类的描述,可以引用系统设计中的描述>
    ///作者:作者中文名
    ///编写日期:<模块创建日期,格式:YYYY-MM-DD>
    ///
     如果模块有修改,则每次修改必须添加以下注释:
    ///
    ///Log编号:<LOG< SPAN>编号,从1开始一次增加>
    ///修改描述:<对此修改的描述>
    ///作者:修改者中文名
    ///修改日期:<模块修改日期,格式:YYYY-MM-DD>
    ///

    2.2 类属性注释规范
      对类的属性必须以以下格式编写属性注释:

      /// 
      
    ///属性说明
      
    /// 

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

      /// <summary>  说明 
      
    /// 此处为说明的内容
      
    /// </summary>
      
    /// <param name="trans"></param>   参数说明
      
    /// <param name="cmdType"></param>
      
    /// <param name="cmdText"></param>
      
    /// <param name="cmdParms"></param>
      
    /// <returns></returns>    返回值说明

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

      //<单行注释>

      多行注释:

    /*多行注释1
    多行注释2
    多行注释3
    */

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

    3 变量(Variable)命名规范

    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/max、begin/end 和 open/close。
    8 不要使用原义数字或原义字符串,如 For i = 1 To 7。而是使用命名常数,如 For i = 1 To NUM_DAYS_IN_WEEK 以便于维护和理解。

    3.2 控件命名规则
      控件命名 = Web控件缩写前缀 + “_” +变量名

      控件 缩写
      Label lbl
      TextBox txt
      CheckBox chk
      Button cmd
      ListBox lst
      DropDownList drp
      等等

    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 个字符应当足够了。

    5 类(Class)命名规范

    5.1 名字应该能够标识事物的特性。
    5.2 名字尽量不使用缩写,除非它是众所周知的。
    5.3 名字可以有两个或三个单词组成,但通常不应多于三个。
    5.4 在名字中,所有单词第一个字母大写。
      例如 IsSuperUser,包含ID的,ID全部大写,如CustomerID。
    5.5 使用名词或名词短语命名类。
    5.6 少用缩写。
    5.7 不要使用下划线字符 (_)。
      例:

      public class FileStream
      
    public class Button
      
    public class String 

    6 接口(Interface)命名规范

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

     interface IDBCommand;
     
    interface IButton;

    7 方法(Method)命名规范

      和类命名规范相同。

    8 命名空间(NameSpace)命名规范

      和类命名规范相同

    9 文件名命名规范

      和类命名规范相同

     
    如果您喜欢我,可以通过微信请我喝果汁。

    如果有疑问,可以留言或者发邮件给我 lhh_nj@163.com
  • 相关阅读:
    js回车键事件
    legend3---15、像粉丝数、关注数、课程数等数量数据如何处理
    Jquery.Data()和HTML标签的data-*属性
    php判断两个数组是否相等
    安卓Android控件ListView获取item中EditText值
    ubuntu安装和查看已安装
    Remove “System Program Problem Detected” Messages From Ubuntu
    Genymotion
    Genymotion中文手册
    sudo apt-get install lib32stdc++6
  • 原文地址:https://www.cnblogs.com/lihuanhuan/p/10612247.html
Copyright © 2011-2022 走看看