標籤:
一、檔案命名
1 檔案名稱
檔案名稱統一使用帕斯卡命名法,以C#類名命名,拓展名小寫。
樣本:
GameManager.cs
2 檔案注釋
每個檔案頭須包含注釋說明。
樣本:
// 檔案名稱:GameStatusMachine.cs
//// 檔案功能描述://// 遊戲狀態機器基類指令碼,用於讀寫全域遊戲狀態,發送遊戲狀態以調控遊戲情境切換等//// 建立標識:taixihuase 20150327//// 修改標識:taixihuase 20150328// 修改描述:// 在遊戲狀態枚舉GameStatus中添加枚舉值LoginStatus,表示登入狀態//// 修改標識:// 修改描述://
檔案頭注釋遵循以下規則。
規則1:檔案頭注釋中的檔案功能僅需簡述。
規則2:建立標識或修改標識由建立者或修改者及日期組成。
規則3:同一天內同一個人多次對檔案修改只需做一個修改標識,同一天內不同人對檔案進行修改則需另做一個修改標識。
規則4:注釋統一用雙左斜杆,不要用C風格注釋,避免雜亂注釋如一行星號填充空位,保持注釋整潔
規則5:必要時,在多項注釋內容段之間使用內容為空白的注釋,而非使用空行
二、代碼風格
1 列寬
編寫代碼時切換到螢幕高解析度,以1440*900解析度下Visual Studio 2013為例,在代碼縮放為100%時,代碼控制在110列以內。
2 換行
當運算式超出或即將超出列寬時,遵循以下換行規則。
規則1:在操作符前換行。
規則2:在逗號後換行,優先於規則1。
規則3:使用IDE內建的換行,而非手動換行,此規則優先順序最高。
3 縮排
每行開頭使用一個Tab,佔4個字元長度。不要直接敲入4個空格,而應使用Tab鍵。但不能使用Tab定位字元,而應在IDE中設定縮排大小為4,以及轉換Tab。以Visual Studio 2013為例,方法如下:
工具->選項->文字編輯器->C#->定位字元->插入空格
4 空行
使用空行將邏輯相關的代碼進行分塊,提高代碼的可閱讀性。
空行的使用遵循以下規則。
規則1:在類以上層級之間使用兩個空行。
1. 介面與介面、類與類、介面與類的定義之間。
2. 枚舉與介面、枚舉與類的定義之間。
3. 命名空間與命名空間之間。
規則2:在類內層級之間使用一個空行。
1. 變數與變數、方法與方法、屬性與屬性、方法與屬性、方法與欄位之間。
2. 變數聲明與語句之間。
3. 方法中不同邏輯塊之間。
4. 方法中返回語句與其他語句之間。
5. 屬性與跟該屬性不相對應的欄位之間。
6. 注釋與其他由多條非備註陳述式組成、共同處理某一邏輯的程式碼片段之間。
規則3:在類內緊密關聯內容之間不使用空行。
1. 注釋與其他注釋之間。
2. 屬性與跟該屬性相關聯的欄位之間。
3. 注釋與跟該注釋對應的欄位、屬性、方法、介面、類及命名空間。
樣本:
// 這是一個C#代碼規範命名空間namespace CSharpStyleGuide{ // 這是一個介面 interface INothing { void Nothing(); } // interface INothing
// 這是第一個樣本類 class FirstSampleClass { private static string className = "FirstSampleClass"; private int property; // 這是一個私人欄位,這裡用了行章節附註釋允許的兩種情況之一,另一種與右括弧關聯 public int Property { get { return property; } set { property = value; } } public int AnotherProperty { get; set; } // 預設建構函式 // 帶一個預設參數value,預設值為0 FirstSampleClass(int value = 0) { Property = value; } public int GetValue() { // 顯示提示資訊 Console.WriteLine("這個類的類名為" + className); Console.WriteLine("這個類儲存的值大小為:"); // 單行顯示值 Console.WriteLine(Property); return Property; } public virtual void SetValue(int value) { this.Property = value; } } // class FirstSampleClass // 在這個類內設定主方法入口 class Program { static void Main(string[] args) { // 暫時不做任何事 } } // class Program} // namespace CSharpStyleGuide
5 空格
優先使用IDE內建的縮排功能來填補空格,空格遵循以下規則。
規則1:關鍵字及左括弧之間用空格隔開。
樣本:
while (true)
規則2:方法名與左括弧之間不使用空格。
樣本:
ShowSample();
規則3:多個參數用逗號隔開,每個逗號後添加一個空格。
樣本:
CompareValue(lhs, rhs);
規則4:除了.和->之外,二元運算子與其運算元之間用空格隔開,一元運算子不用空格隔開。
樣本:
a += b; a = a / (a + b); a++;
規則5:語句中的運算式用空格隔開。
樣本:
for (int i = 0; i < 100; ++i)
規則6:注釋左斜杆後與注釋的內容之間用空格隔開
樣本:
// 這句注釋前有個空格
6 括弧
圓括弧:使用圓括弧首先需遵循使用空格的規則,其次,在沒有必要的情況下,不要在return語句使用圓括弧。
樣本:
return ERROR;
花括弧:使用時遵循以下的要求。
規則1:左花括弧放在關鍵字或方法名的下一行並與之對齊。
規則2:左花括弧與右花括弧對齊。
規則3:花括弧單獨成行,不與任何語句並列一行。
規則4:if、else、while、do等語句後必須使用花括弧,即使內部為空白或僅有一條語句,這樣便於擴充內容和快速搜尋。
規則5:當代碼塊較長(將近或者超出一螢幕),此時建議在右花括弧後添加註釋,以便於找到對應的允入準則,注釋與右花括弧之間空出一格
樣本:
while (true) { if (isOk) { return OK; } else { // Do Somthing here. return ERROR; } // isOK is False } // true
C#代碼規範(未完成版)