艾伟:C#3.0编码习惯与命名规则

简介: 1.用Pascal大小写规则命名方法、类型、结构、接口、委托、枚举、枚举项、属性、事件等。 public   class   DataGrid {           public   void   DataBind()           {          } } 2.用Camel大小写规则命名所有变量、字段和参数。

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编码习惯与命名规则献上,在分享中彼此提高。

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

目录
相关文章
|
1月前
|
存储 C#
C#使用哈夫曼编码实现压缩与解压
C#使用哈夫曼编码实现压缩与解压
25 0
|
3月前
|
开发者 C# Android开发
Xamarin 与 .NET:解锁现代化移动应用开发的超级武器——深入探讨C#与.NET框架如何赋能跨平台应用,实现高效编码与卓越性能
【8月更文挑战第31天】Xamarin 与 .NET 的结合为开发者提供了强大的平台,用于构建现代化移动应用。通过 C# 和 .NET 框架,Xamarin 可以实现一次编写、多平台运行,覆盖 iOS、Android 和 Windows。这种方式不仅节省了开发时间和成本,还保证了应用的一致性和高质量。Xamarin 是一个开源框架,专为跨平台移动应用开发设计,允许使用 C# 语言和 .NET 核心库构建原生应用,并访问各平台特定功能。微软维护的 Xamarin 是 Visual Studio 生态系统的一部分,极大地提高了开发效率。
84 0
|
6月前
|
程序员 编译器 C#
C#变量命名规则
C#变量命名规则
66 0
|
6月前
|
C#
C# 获取文件编码格式
C# 获取文件编码格式
57 0
解读C#编程中最容易忽略7种编写习惯!
解读C#编程中最容易忽略7种编写习惯!
C#使用base64对字符串进行编码和解码的测试
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。
C#使用base64对字符串进行编码和解码的测试
|
JavaScript 前端开发 PHP
C#(五)之常量、@控制符、转译符、ASCII编码,Console.Write
对C#的常量,ASCII编码、@控制符、“+”连接符、Console.WriteLine及转译字符的简单应用。
322 0
C#(五)之常量、@控制符、转译符、ASCII编码,Console.Write