標籤:des style color 使用 os io for cti
- 特定情境下的命名最佳實務
- 要使用PascalCasing,並用點號來分隔名字空間中的各個部分。
如Microsof.Office.PowerPoint
- 要用公司名作為命名空間的首碼,這樣就可以避免與另外一家公司使用相同的名字。
- 要用穩定的,與版本無關的產品名稱作為命名空間的第二層
- 不要使用公司的組織架構來決定命名空間的階層,因為內部組織圖經常改變。
- 不要用相同的名字來命名命名空間和該空間內的類型。
例如,不要先將命名空間命名為Debug,然後又在該空間中提供Debug類。大部分編譯器包括VS要求使用者在這樣的類型前加上完整的限定符。
如IComponet,IDisposable 大家一看就知道是介面。
同時要確保如果一個類是一個介面的標準實現,那麼這個類和介面應該只差一個"I"首碼。
例如,從 Stream 繼承的 Framework 類型以 Stream 結尾,從 Exception 繼承的類型以 Exception 結尾。
- 使用描述性的名字來命名泛型型別參數,並且在前面加上T首碼
如下面都是很好的命名
public delegate TOutput Converter<TInput, TOutput>(TInput from);
- 如果只有一個型別參數,可以只用一個字母T來表示泛型
public class Nullable<T>
public class List<T>
- 如果泛型參數有約束,那麼需要在泛型型別參數名中需要顯示出該約束
public interface ISessionChannel<TSession> where TSession:ISession
- 要用單數名詞而不是複數命名枚舉類型,如要用ConsoleColor而不是ConsoleColors
public enum ConsoleColor
{
Red,
Yellow,
Blue
}
- 不要給枚舉類型加"Enum"、"Flag"等尾碼。
ColorEnum,ColorFlag都不好,因為本身就是枚舉,再加上就是沒有意義的重複 。
- 要用名詞、名詞短語或形容詞來命名屬性
- 要用描述集合中具體內容的短語的複數形式來命名屬性集合,而不要用短語的單數形式加"List"、"Array"或"Collection"尾碼
class BinaryTree
{
//Good Naming
public NodeCollection Nodes { get; set; }
//Bad Naming
public NodeCollection NodesCollection { get; set; }
- 要用肯定性的短語命名布爾屬性。最好在前面選擇性的加入"Is"、"Can"、"Has"等首碼。
CanSeek比CantSeek和Seekable都更準確和容易理解。
- 要用動詞或動詞短語命名事件
如: Clicked、Painting、DroppedDown 等等
- 要用現在進行時(ing)和過去式(ed)來賦予事件發生之前和之後的概念。而不是使用Before和After.
如視窗關閉前發生的close事件應該命名為Closing,而在視窗關閉之後發生的應該命名為Closed.
//propg
public int NodesCount { get; private set; }
//prop
public List<BinaryNode> Nodes { get; set; }
- 一般只使用靜態欄位
- 要使用名詞、名詞短語或形容詞命名欄位
- 不要給欄位加首碼如"g_"、"s_"來表示靜態欄位。因為欄位和屬性是非常相似的,所以要遵循相同的命名規範。