1. 概述
高品質、易維護的軟體開發離不開清晰嚴格的編碼規範。這篇文檔可應用於所有.net應用編程之中,它概述了微軟定義的開發中用到的編碼約定和設計指導。可以開啟MicrosoftDesign Guidelines for Class Library Developers [1] 查看更多的指導資訊以寫出可用的、健壯的、易擴充的軟體部分。
2. 編碼約定
.net在命名規範上引入兩種命名機制,即Pascal Casing, 和 Camel Casing.
Pascal Casing – 各個單詞的第一字元採用大寫,例如:MyClassName.
Camel Casing – 除了第一個單詞外,其它所有單詞第一個字元採用大寫,例如:myVariableName.
2.1 命名空間
Pascal casing 實用於所有命名空間的定義。 命名空間首碼的公司以及所描述的功能也都實用這個規則,例如Shinetech.Web.CustomerControls.TabControl描述了一個命名空間定義的習慣。
2.2 類
Pascal casing 實用於所有類的定義。類的定義應注意避免縮寫的使用。底線的使用也應該避免。
2.3 介面
Pascal casing 實用於所有介面的定義。介面定義需要以字元“I”開始。同樣,縮寫和底線應避免在介面定義中使用。
2.4 方法
Pascal casing 實用於所有方法的定義。Pascalcasing 推薦使用動詞或動詞片語來描述所定義的方法,因為一個方法往往總是用來表達某個對象的某些功能。避免使用縮寫和底線。
2.5 參數
參數名應該是說明性的,避免使用縮寫,使用Camel casing。
public voidMySampleMethod(int timeoutInSeconds)
{
// Do work
}
2.6 屬性
Pascal casing 實用於所有屬性的定義。屬性應該是描述性的,避免使用縮寫。第一個字元大寫,注意和變數的定義進行區分,變數是以小寫字元開始的。
2.7 欄位
欄位的定義應該使用Camel casing規範,加首碼“m”表示該定義表示一個欄位。
例如:
Class MyClass
{
private string mMyStringValue;
}
2.8 變數
變數定義應遵循Pascal casing,應該是描述性的,避免縮寫。注意和屬性定義區分。絕不要使用用大寫字元作為開始。
2.9 事件控制代碼
事件是由一個對象發出的一個由委託定義的控制代碼,應該由動詞或動名詞來描述一個委託的定義,定義應該以“EventHandler”尾碼結尾。按照慣例調用對象應該傳遞一個事件的狀態的參數。
public delegatevoid ScreenEventHandler(object sender, ScreenEventArgs e);
3. Code Style
3.1 Commenting
最起碼的,注釋必須要以.NET XML的格式為所有公用的類,方法,屬性,欄位作出注釋。
3.2 特殊要求
可根據具體項目或情況作其它約束。
4. 設計指導
整理中