命名規範制定意義編碼
1. 方便代碼的交流和維護,便於往後本身的再次閱讀。spa
2. 不影響編碼的效率,不與大衆習慣衝突。orm
3. 使代碼更美觀、閱讀更方便。對象
4. 使代碼的邏輯更清晰、更易於理解。接口
名詞解釋事件
Pascal:帕斯卡命名,每一個單詞第一個字母大寫ci
Camel :駝峯命名,第一個單詞字母小寫,其他單詞第一個大寫get
總結表:string
標識符產品 |
大小寫 |
樣例 |
說明 |
命名空間 |
Pascal |
namespace System.Security { } |
用有意義的名字命名 namespace,如:產品名、公司名 |
類 |
Pascal |
public class StreamReader { } |
使用名詞、名詞短語命名 |
接口 |
Pascal |
public interface IEnumerable { } |
以 I 開始,後面加上名詞、名詞短語、形容詞命名。 |
字段 ( 私有、保護 ) |
Camel |
private string userName; |
第一個單詞小寫,後面鏈接的單詞首字母大寫 |
字段 ( 公共、靜態 ) |
Pascal |
public static readonly string UserId ; |
|
屬性 |
Pascal |
private int length; public int Length { get; } |
字段private且小寫,而後屬性public大寫 |
枚舉 |
Pascal |
enum FileMode { Append, } |
|
事件 |
Pascal |
public event EventHandler Exited ; |
|
方法 |
Pascal |
public string ToString (); |
通常將其命名爲動賓短語, 「動詞+對象 」.
|
參數 |
Camel |
public static int ToInt32(string userId ); |
|
基礎數據類型命名
數據類型 |
標準命名舉例 |
array |
arrShoppingList |
bool |
isPostBack |
string |
strFirstName |
int |
intId |
DateTime |
dtmStartDate |
object |
objDog |
上面是經常使用的數據類型
注意事項:
序號 |
說明 |
示例 |
1 |
除約定俗成的,別用縮寫。用 name, address, salary 等代替 nam, addr, sal |
|
2 |
除用於循環,別使用單個字母的變量象 i, n, x 等. 而要使用 index, temp 等 |
for ( int index = 0; index < count; index++ ){ ...} |
3 |
自定義的異常以 Exception結尾 |
public class AppException : Exception |
4 |
代碼的縮進 .要用 Tab,而不要用 space. |
|
5 |
全部的類成員變量應該被聲明在類的頂部,並用一個空行把它們和方法以及屬性的聲明區分開 |
|
6 |
建議局部變量在最接近使用它時再聲明 . |
|
7 |
文件名要能反應類的內容,最好是和類同名,一個文件中一個類或一組關連類 |
|
8 |
大括號 "{"要新起一行 |
|
9 |
單獨方法要加註釋 |
/// <summary> /// 根據id得到姓名 /// </summary> /// <param name="id">檢索的id</param> /// <returns></returns> public string GetName(int id) { return "xiaomi"; } |
10 |
不要對字段名或靜態字段名應用前綴。 具體說來, 不要對字段名稱應用前綴來區分靜態和非靜態字段。 |
例如,應用 g_ 或 s_ 前綴是不正確的。 |
11 |
避免容易被主觀解釋的難懂的名稱 |
方法名 AnalyzeThis() ,或者屬性名 xxK8。這樣的名稱會致使多義性。 |
12 |
在類屬性的名稱中包含類名是多餘的 |
如 Book.BookTitle 。而是應該使用 Book.Title |
13 |
只要合適,在變量名的末尾或開頭加計算限定符 |
( Avg、Sum、Min、Max、Index ) |
14 |
在變量名中使用互補對 |
如 min/max 、begin/end 和 open/close |
15 |
布爾變量名應該包含 Is ,這意味着 Yes/No 或 True/False 值 |
fileIsFound |
16 |
在命名狀態變量時,避免使用諸如 Flag 的術語。狀態變量不一樣於布爾變量的地方是它能夠具備兩個以上的可能值 |
不是使 用 documentFlag ,而是使用更具描述性的名稱,如 documentFormatType 。 (此項只供參考) |
17 |
用於事件處理的委託添加 「EventHandler 」後綴 |
public delegate void MouseEventHandler(object sender, MouseEventArgs e); |
18 |
用於事件處理以外的那些委託添加 「Callback 」後綴 |
|
19 |
不要給委託添加 「Delegate 」後綴 |