zoukankan      html  css  js  c++  java
  • 艾伟:C#3.0编码习惯与命名规则 狼人:

    1.用Pascal大小写规则命名方法、类型、结构、接口、委托、枚举、枚举项、属性、事件等

    public   class   DataGrid 

              
    public   void   DataBind() 
              {
              } 


    2.用Camel大小写规则命名所有变量、字段和参数。

    可采用Pascal也可采用Camel大小写规则的:常量、控件ID。

    public   class   Product 

              
    private   string   _productId; 
              
    private   string   _productName; 
              
    public   void   AddProduct(string   productId,string   productName) 
              { 
              } 
    }
    public class BaseView:ViewPage
    {
              
    protected Label label; //Camel命名控件ID
              protected Login Login1; //Pascal命名空间ID
    }



    3.所有的私有成员变量前加前缀“_”

    public   class   DataBase 

             
    private   string   _connectionString; 



    4.接口的名称加前缀   “I”

    public   interface   IConvertible 

             
    byte   ToByte(); 



    5.自定义的属性以“Attribute”结尾。 

    public   class   TableAttribute:Attribute 

          
    //在使用这个属性时,不冲突的情况下,直接可以省掉TableAttribute后面的Attribute用Table也可以。
    }

      

    6.自定义的异常以Exception结尾。

    public   class   NullEmptyException:Exception 


    }   


    7.方法的命名。一般将其命名为动宾短语。 (参数作为宾语时,在不混淆情况下,可以省略。)

    public   class   File 

                
    public   void   CreateFile(string   filePath) 
                { 
                } 
                
    public   void   GetPath(string   path) 
                { 
                } 
                
    public void Delete(string fileName)
                {

                }
    }   


    8.局部变量的名称要有意义。
    不要用xyz等等,用For循环变量中可使用i,   j,   k,   l,   m,   n (当循环嵌套超过三个时,应抽出方法。)

    public   class   User 

             
    public   void   GetUser() 
             { 
                      
    string[]   userIds="ziv""zorywa""zlh"}; 
                      
    for(int   i=0,k=userIds.Length;i <k;i++
                      { 
                      } 
             } 

     

    9.所有的成员变量声明在类的顶端,用一个换行把它和方法分开。

    public   class   Product 

               
    private   string   _productId; 
               
    private   string   _productName; 

               
    public   void   AddProduct(string   productId,string   productName) 
               { 
               } 



    10.用有意义的名字命名namespace,如:公司名、产品名。 (有人问到,如果是公用类库怎么办,我的答案是,规则依然执行,比如Zivsoft.Data,或Zivsoft.Data.Access等)

    namespace   Zivsoft//公司命名 



    namespace   ERP//产品命名 



     


    11.建议局部变量在最接近使用它时再声明。


    12
    .使用某个控件的值时,尽量命名局部变量。 

    public   string   GetTitle() 

                
    string   title=this.lblTitle.Text; 
                
    return   title; 
    }

     

    14.把引用的系统的namespace和自定义或第三方的用一个换行把它们分开。  

    using   System; 
    using   System.Web.UI; 
    using   System.Windows.Forms; 

    using   Zivsoft.Data; 
    using   Zivsoft.Data.SQLServer;//注意,最好建议按字目顺序排序
    using   Zivsoft.Localization;



    15.文件名要能反应类的内容,最好是和类同名,一个文件中一个类或一组关连类。 如果代码超过3000行,或者一个类分几块,可以采用Config.private.cs或Config.public.cs命名。

    16.
    目录结构中要反应出namespace的层次。

    17.
    大括号 "{“要新起一行。 个人觉得比较直观。

    public   Sample() 

          
    // 
          
    //   TODO:   在此处添加构造函数逻辑 
           
    // 

     

    18. 普通get/set属性,建议采用3.0的风格:

    public string Name
    {
           
    get;
           
    set;
    }
    public string Age
    {
           
    get;
           
    private set;
    }

     

    19. 局部变量,能用var,尽量使用var关键字。(注意,读代码时如果造成类型不明确,采用具体类型)——其实这个问题一直在争议当中。

    var i=0;
    var strName
    ="Lihua";
    UserInfo objUser
    =GetUserInfo();//注意,不推荐var

     

    20. 对象初始化,能简写最好简写:

    var vt=new ValueText{Value=10, Text="Age"};

     

     

    其实规则很重要,它是一种标准,可有可无,但有总会比无好,大家正在编码的同志仔细看看,给点改进意见,目前更新到20条

    今天很巧,刚好零点,赶上cnblogs的今日头条啦。另外,无意搜到“周利华”在google记录里竟然有16600条之多,感慨之余,都分不清哪个是自己,哈哈,最后加上“cnblogs”才找到自己。

    最后,熬夜把这新的C#3.0编码习惯与命名规则献上,在分享中彼此提高。

    综合网友意见和建议,我刚做了部分修改。

  • 相关阅读:
    ip报文
    常见端口
    navicat15 破解版
    谷歌跨域设置
    CSS flex弹性布局来做 页面底部自适应:页面高度不足时,在底部显示;页面高度超出时,随页面滚动(亲测有效)
    phpstorm 2019 激活码
    aes cbc模式
    Vue的安装及使用快速入门
    从SVN服务器端彻底删除错误提交版本
    Nginx配置https和wss
  • 原文地址:https://www.cnblogs.com/waw/p/2156840.html
Copyright © 2011-2022 走看看