1. 程式人生 > >自己總結的C#編碼規範--1.命名約定篇

自己總結的C#編碼規範--1.命名約定篇

命名約定

我們在命名識別符號時(包括引數,常量,變數),應使用單詞的首字母大小寫來區分一個識別符號中的多個單詞,如UserName.

  • PascalCasing

PascalCasing包含一到多個單詞,每一個單詞第一個字母大寫,其餘字母均小寫。例如:HelloWorld、SetName等。

除了引數、變數、常量外,所有名稱空間名稱、類、函式、介面、屬性、事件、列舉等名稱的命名,使用 Pascal 風格。

  • camelCasing

camelCasing包含一到多個單詞,第一個單詞首字母小寫,其餘單詞首字母大寫。例如:name、productId等。

引數與變數的命名使用camelCasing.

  • SCREAMING_CAPS

SCREAMING_CAPS包含一到多個單詞,每個單詞的所有字母都大寫,單詞與單詞之間用"_"連線,該風格目前在c#中只用於const常量

如:public const string DEFAULT_PAGE = "default.aspx";

  • 私有變數的命名

Private 的私有變數使用下劃線"_"+camelCasing的大小寫規則,以便快速確認該變數的作用域。

如: private int _userId;

  • 首字母縮寫詞的大小寫

首字母縮寫詞是由一個短語的首字母組成的,如Xml(ExtensibleMarkuLaguage),IO(Input and Output)。它和單詞縮寫是有區別的,單詞縮寫僅僅是把一個單詞的長度變短。

  1. 把兩個字母的首字母縮寫詞全部大寫,除非它是camelCasing的第一個單詞。

    using System.IO;

    public void StartIO(Stream ioStream)

  2. 由三個或以上的字母組成的首字母縮寫詞,只有第一個字母大寫,如Xml,Html.除非首字母是camelCasing識別符號的第一個單詞。

    using System.Xml;

    public void ProcessXmlNode(XmlNode xmlNode)

  • 複合詞的大小寫

不要把複合詞中的首字母大寫。複合詞要當成一個單詞來處理。

如endpoint, callback,metadata,namespace等都是正確的寫法

  • 在帶單位的值的變數後加上"_camelCasing單位"

將單位加入識別符號命名中,可以使使用者快速準確的知道傳人資料的單位,減少錯誤的發生。

public void CreateCache(int cacheSize)

傳入的資料是bytes, KB, MB 還是GB?

改成public void CreateCache(int cacheSize_mb)

一目瞭然,並且會減少呼叫者傳入錯誤資料的可能。

其他一些沒有單位的函式引數以及帶單位的版本。

  • 不要使用匈牙利命名法

匈牙利命名法是指用小寫形式的資料型別縮寫來作為變數名的字首。如:strName,intCount。

這種命名法在C和C++時代很流行,可以幫助程式設計師記住自己的型別。

但在C#中需要禁用,除非你有足夠的理由,因為:

  1. C#都是強型別的,現在的IDE(如Visual Studio)可以自動的檢測出當前變數的型別以及型別錯誤

  2. 開發初期經常需要修改變數的型別,使用匈牙利命名法維護很困難。
  • 使用英語語序命名識別符號

人在閱讀程式碼時,能更快的理解符合其閱讀習慣的命名。

如VerticalAlignment比AlignmentVertical能讓人更快的知道該變數的含意。