C#命名規範

來源:互聯網
上載者:User

認為一個好的命名規範會給程式的閱讀者一個好的享受!
名稱空間的命名 
   命名名稱空間的一般規則如下:
   CompanyName.TechnologyName
  這樣,我們看到的名稱空間應該是這樣的:  
   Microsoft.Office
   PowerSoft.PowerBuilder                               

  注意:這隻是一個原則。第三方公司可以選擇其它的名字。
  避免用公司名稱或其它著名品牌的名稱作為名稱空間的首碼,這樣會造成兩個公布的名稱空間有同一個名稱的可能性。
  例如: 將微軟提供的Office自動類命名為Microsoft.Office

  使用Pascal大寫方式,用逗號分隔邏輯成分。
  例如:Microsoft.Office.PowerPoint

  如果你的品牌使用的是非傳統大寫方式,那麼一定要遵循你的品牌所確定使用的大寫方式,即使這種方式背離了通常的名稱空間大寫規則。
  例如:NeXT.WebObjects
     ee.cummings

類和類成分的命名

  類的命名原則是用名詞或名詞短語命名類,使用Pascal大寫。減少類名中縮寫的使用量。不要使用任何類首碼(比如C),不要使用帶底線的字元。
  例如:public class FileStream {}
      public class Button {}
      public class String {}

變數的命名

  名稱中各單詞首字母均為大寫。
  例如:FindLastRecord
      RedrawMyForm
  在內部範圍中避免使用與外部範圍中的名稱相同的名稱。若訪問錯誤變數,則會產生錯誤結果。若變數與同一名稱的關鍵字衝突,則必須在關鍵字前加適當的類型庫以作標識。
  例如:若有一個名為 date 的變數,只能通過調用 System.Date 來使用內部 Date 函數。

函數和方法的命名

  函數和方法的命名應該以動詞開始,使用Pascal大寫。不要使用帶底線的字元。
  例如:InitNameArray
      CloseDialog

介面命名原則

  使用名詞或名詞短語,或者描述行為的形容詞來命名介面,使用Pascal大寫。 減少介面名中縮寫的使用量,在介面名前加首碼I,以表示這個類型是一個介面。
   例如: IComponent(描述性名詞)
       ICustomAttributeProvider(名詞短語)
       IPersistable(形容詞)

參數的命名   

  使用描述性參數名。參數名應該具有足夠的描述性,這樣在大多數情況下參數名和它的種類可以用來確定它的意思。根據參數的意思來具名引數,而不是根據參數的種類來命名。我們希望開發工具可以用很方便的方式提供關於參數種類的資訊,這樣參數名可以得到更好的使用,可以對語義而不是對種類進行描述。但是偶爾使用根據類型命名的參數名也是完全可以的。不要使用保留參數。如果在下一個版本中需要更多的資料,可以增加進來。
  例如:Type GetType (string typeName)
     string Format (string format, object [ ] args)

屬性的命名

  用名詞或名詞短語命名屬性,屬性與類型要一樣。 用與一個類型的名稱相同的名字來命名屬性時,就使這個屬性的類型成為那個類型。雖然聽起來有些奇怪,但這是正確的。
  例如:public enum Color {...}
      public class Control {
      public Color Color {get {...} set {...}}
      }

事件的命名

  用EventHandloer尾碼命名事件處理常式,使用名為sender和e的兩個參數,Sender參數代表提出事件的對象。Sender參數永遠是一個類型對象,即使它可能使用了更為特定的類型,與事件相關的狀態被封裝在一個名為e的事件類別範例中。要使用這個類型的正確的、特定的事件類別。
  例如:public delegate void MouseEventHandler(object sender, MouseEvent e);
  命名事件名時,需要有之前和之後的時態概念,因此要使用現在時態和過去時態(不要使用BeforeXxx\\AfterXxx的方式)。例如,可以被取消的結束事件就有Closing事件和Closed事件。

長項和常用項的命名

  可使用縮寫使名稱長度適中,通常,多於 32 個字元的變數名在低解析度的監視器上難以閱讀。同時,請確保縮寫在整個應用程式中保持一致。
  例如:可以使用“HTML”代替“HyperText Markup Language”。

代碼書寫格式規範

檔案之中不得存在無規則的空行,比如說連續十個空行。一般來講函數與函數之間的空行為2-3行。
在函數體內部,在邏輯上獨立的兩個函數塊可適當空行,一般為1-2行。

每行長度盡量避免超過螢幕寬度,應不超過80個字元。

盡量用公用過程或子程式去代替重複的功能程式碼片段。

使用括弧清晰地表達算術運算式和邏輯運算式的運算順序。如將 x=a*b/c*d 寫成 x=(a*b/c)*d可避免閱讀者誤解為x=(a*b)/(c*d)。

避免採用過於複雜的條件測試。

避免過多的迴圈嵌套和條件嵌套。

一個函數不要超過200行。一個檔案應避免超過2000行。

避免使用goto語句。

避免採用多指派陳述式,如x = y = z;。
代碼注釋規範

  .cs檔案的注釋
  所有.cs檔案開頭都要加上注釋,寫明檔案建立時間、作者、用途概述等
  例如:

//********************************************************

//新增日期:2004.7.19

//作者:XXX

//內容說明: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

//********************************************************

  函數過程注釋

  所有的函數體開頭都要加上注釋,所以注釋使用.NET注釋規範。
  例如:

/// <summary>
/// 建構函式
/// </summary>
/// <param >樣本參數1</param>
/// <param >樣本參數2</param>
public UpgradeThread(string is_xxx1, string is_xxx2)
{
//…
}
常量變數注釋

所有的常量變數,無論是全域還是局部使用的,凡是對代碼整體起到關鍵性做用的都需要加上注釋。

例如:

/// <summary>
/// 當前線程指向的備份檔案本地儲存路徑
/// </summary>
public string StorePath = '';
代碼修改注釋
當開發人員維護以前的程式碼時,需要在修改處的開始及結尾,加上自己的注釋資訊。

例如:

//BEGIN 2004-7-19 Jayson 修正了XXX問題
略…
//END 2004-7-19 Jayson

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.