要使用可以准确说明变量/字段/类的完整的英文描述符,如firstName。对一些作用显而易见的变量可以采用简单的命名,如在循环里的递增(减)变量就可以被命名为 ” i ”。
要尽量采用项目所涉及领域的术语。
要采用大小写混合,提高名字的可读性。为区分一个标识符中的多个单词,把标识符中的每个单词的首字母大写。不采用下划线作分隔字符的写法。有两种适合的书写方法,适应于不同类型的标识符:
PasalCasing:标识符的第一个单词的字母大写;
camelCasing:标识符的第一个单词的字母小写。
下表描述了不同类型标识符的大小写规则:
标识符 |
大小写 |
示例 |
命名空间 |
Pascal |
namespace Com.Techstar.ProductionCenter |
类型 |
Pascal |
public class DevsList |
接口 |
Pascal |
public interface ITableModel |
方法 |
Pascal |
public void UpdateData() |
属性 |
Pascal |
Public int Length{…} |
事件 |
Pascal |
public event EventHandler Changed; |
私有字段 |
Camel |
private string fieldName; |
非私有字段 |
Pascal |
public string FieldName; |
枚举值 |
Pascal |
FileMode{Append} |
参数 |
Camel |
public void UpdateData(string fieldName) |
局部变量 |
Camel |
string fieldName; |
避免使用缩写,如果一定要使用,就谨慎使用。同时,应该保留一个标准缩写的列表,并且在使用时保持一致。
对常见缩略词,两个字母的缩写要采用统一大小写的方式(示例:ioStream,getIOStream);多字母缩写采用首字母大写,其他字母小写的方式(示例:getHtmlTag);
避免使用长名字(最好不超过 15个字母)。
避免使用相似或者仅在大小写上有区别的名字。
6.2.各种标示符类型的命名约定
6.2.1. 程序集命名
公司域名(Techstar)+项目名称 + 模块名称(可选),例如:
中心系统程序集:Techstar.ProductionCenter;
中心系统业务逻辑程序集:Techstar. ProductionCenter.Business;
6.2.2. 命名空间命名
采用和程序集命名相同的方式:公司域名(Techstar)+项目名称 + 模块名称。另外,一般情况下建议命名空间和目录结构相同。例如:
中心系统:Techstar.ProductionCenter;
中心系统下的用户控件:Techstar.ProductionCenter.UserControl;
中心系统业务逻辑:Techstar. ProductionCenter.Business;
中心系统数据访问:Techstar. ProductionCenter.Data;
6.2.3. 类和接口命名
类的名字要用名词;
避免使用单词的缩写,除非它的缩写已经广为人知,如HTTP。
接口的名字要以字母I开头。保证对接口的标准实现名字只相差一个“I”前缀,例如对IComponent的标准实现为Component;
泛型类型参数的命名:命名要为T或者以T开头的描述性名字,例如:
public class List<T>
public class MyClass<TSession>
对同一项目的不同命名空间中的类,命名避免重复。避免引用时的冲突和混淆;
6.2.4. 方法命名
第一个单词一般是动词
如果方法返回一个成员变量的值,方法名一般为Get+成员变量名,如若返回的值是bool变量,一般以Is作为前缀。另外,如果必要,考虑用属性来替代方法,具体建议见10.1.2节;
如果方法修改一个成员变量的值,方法名一般为:Set +成员变量名。同上,考虑用属性来替代方法;
6.2.5. 变量命名
按照使用范围来分,我们代码中的变量的基本上有以下几种类型,类的公有变量;类的私有变量(受保护同公有);方法的参数变量;方法内部使用的局部变量。这些变量的命名规则基本相同,见标识符大小写对照表。区别如下:
i. 类的公有变量按通常的方式命名,无特殊要求;
ii. 类的私有变量采用两种方式均可:采用加“m”前缀,例如mWorkerName;
iii. 方法的参数变量采用camalString,例如workerName;
iv. 方法内部的局部变量采用camalString,例如workerName;
不要用_或&作为第一个字母;
尽量要使用短而且具有意义的单词;
单字符的变量名一般只用于生命期非常短暂的变量。i,j,k,m,n一般用于integer;c,d,e一般用于characters;s用于string
如果变量是集合,则变量名要用复数。例如表格的行数,命名应为:RowsCount;
命名组件要采用匈牙利命名法,所有前缀均应遵循同一个组件名称缩写列表
6.3.组件名称缩写列表
缩写的基本原则是取组件类名各单词的第一个字母,如果只有一个单词,则去掉其中的元音,留下辅音。缩写全部为小写。
组件类型 |
缩写 |
例子 |
Label |
Lbl |
lblNote |
TextBox |
Txt |
txtName |
Button |
Btn |
btnOK |
ImageButton |
Ib |
ibOK |
LinkButton |
Lb |
lbJump |
HyperLink |
Hl |
hlJump |
DropDownList |
Ddl |
ddlList |
CheckBox |
Cb |
cbChoice |
CheckBoxList |
Cbl |
cblGroup |
RadioButton |
Rb |
rbChoice |
RadioButtonList |
Rbl |
rblGroup |
Image |
Img |
imgBeauty |
Panel |
Pnl |
pnlTree |
TreeView |
Tv |
tvUnit |
WebComTable |
Wct |
wctBasic |
ImageDateTimeInput |
Dti |
dtiStart |
ComboBox |
Cb |
cbList |
MyImageButton |
Mib |
mibOK |
WebComm.TreeView |
Tv |
tvUnit |
PageBar |
Pb |
pbMaster |
转:http://blog.csdn.net/beyond_winner/article/details/7637917