6. 命名
6.1. 命名的基本約定
要使用可以準確說明變量/字段/類的完整的英文描述符,如firstName。對一些作用顯而易見的變量可以採用簡單的命名,如在循環裏的遞增(減)變量就可以被命名爲 “ i ”。
要儘量採用項目所涉及領域的術語。
要採用大小寫混合,提高名字的可讀性。爲區分一個標識符中的多個單詞,把標識符中的每個單詞的首字母大寫。不採用下劃線作分隔字符的寫法。有兩種適合的書寫方法,適應於不同類型的標識符:
PasalCasing:標識符的第一個單詞的字母大寫;
camelCasing:標識符的第一個單詞的字母小寫。
下表描述了不同類型標識符的大小寫規則:
標識符 |
大小寫 |
示例 |
命名空間 |
Pascal |
namespace Com.Techstar.ProductionCenter |
類型 |
Pascal |
public class DevsList |
接口 |
Pascal |
public interface ITableModel |
方法 |
Pascal |
public void UpdateData() |
屬性 |
Pascal |
Public intLength{…} |
事件 |
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;
命名組件要採用匈牙利命名法,所有前綴均應遵循同一個組件名稱縮寫列表