C#命名規則、開發習慣和風格 )

來源:互聯網
上載者:User
文章目錄
  •  
  • 資料類型簡寫表
  • 資料類型
  • 資料類型簡寫
  • 標準命名舉例
  •  
  • 控制項ID首碼縮寫表

http://www.cnblogs.com/iloveWater/articles/2209769.html

 

1.在每個檔案的頭部必須包括以下注釋:(更多文檔注釋內容查看>>)
/*----------------------------------------------------------------          // Copyright (C) 2010 南昌大學家園網著作權。           //          // 檔案名稱:           // 檔案功能描述:           //           //           // 建立人:(姓名,連絡方式,時間)           //           // 修改標識:           // 修改描述:           //           // 修改標識:           // 修改描述://----------------------------------------------------------------*/

2.一行只建議作一個聲明,並按字母順序排列。如

int level;   //推薦int size;    //推薦int x, y;    //不推薦

3.欄位的聲明:

不要使用是 public 或 protected 的執行個體欄位。如果避免將欄位直接公開給開發人員,可以更輕鬆地對類進資料列版本設定,原因是在維護二進位相容性時欄位不能被更改為屬性。考慮為欄位提供 get 和set 屬性訪問器,而不是使它們成為公用的。 get 和 set 屬性訪問器中可執行代碼的存在使得可以進行後續改進,如在使用屬性或者得到屬性更改通知時根據需要建立對象。下面的程式碼範例闡釋帶有get 和 set 屬性訪問器的私人執行個體欄位的正確使用。 樣本:

public class Control : Component{    private int handle;    public int Handle    {        get        {            return handle;        }    }}

4.命名概述

名稱應該說明“什麼”而不是“如何”。通過避免使用公開基礎實現(它們會發生改變)的名稱,可以保留簡化複雜性的抽象層。例如,可以使用 GetNextStudent(),而不是 GetNextArrayElement()。

命名原則是:

選擇正確名稱時的困難可能表明需要進一步分析或定義項的目的。使名稱足夠長以便有一定的意義,並且足夠短以避免冗長。唯一名稱在編程上僅用於將各項區分開。表現力強的名稱是為了協助人們閱讀;因此,提供人們可以理解的名稱是有意義的。不過,請確保選擇的名稱符合適用語言的規則和標準。

以下幾點是推薦的命名方法。

1、避免容易被主觀解釋的難懂的名稱,如方面名 AnalyzeThis(),或者屬性名稱 xxK8。這樣的名稱會導致多義性。

2、在類屬性的名稱中包含類名是多餘的,如 Book.BookTitle。而是應該使用 Book.Title。

3、只要合適,在變數名的末尾或開頭加計算限定符(Avg、Sum、Min、Max、Index)。

4、在變數名中使用互補對,如 min/max、begin/end 和 open/close。

5、布爾變數名應該包含 Is,這意味著 Yes/No 或 True/False 值,如 fileIsFound。

6、在命名狀態變數時,避免使用諸如 Flag 的術語。狀態變數不同於布爾變數的地方是它可以具有兩個以上的可能值。不是使用 documentFlag,而是使用更具描述性的名稱,如documentFormatType。 (此項只供參考)

7、即使對於可能僅出現在幾個程式碼中的生存期很短的變數,仍然使用有意義的名稱。僅對於短迴圈索引使用單字母變數名,如 i 或 j。 可能的情況下,盡量不要使用原義數字或原義字串,如

For i = 1 To 7。而是使用命名常數,如 For i = 1 To NUM_DAYS_IN_WEEK 以便於維護和理解。

常用資料類型命名規範表

標識符

大小寫

樣本

Pascal

AppDomain

枚舉類型

Pascal

ErrorLevel

枚舉值

Pascal

FatalError

事件

Pascal

ValueChange

異常類

Pascal

WebException  注意 總是以 Exception 尾碼結尾。

唯讀靜態欄位

Pascal

RedValue

介面

Pascal

IDisposable   注意 總是以 I 首碼開始。

方法

Pascal

ToString

命名空間

Pascal

System.Drawing

屬性

Pascal

BackColor

公用執行個體欄位

Pascal

RedValue    注意 很少使用。屬性優於使用公用執行個體欄位。

受保護的執行個體欄位

Camel

redValue    注意 很少使用。屬性優於使用受保護的執行個體欄位。

私人的執行個體欄位

Camel

redValue

參數

Camel

typeName

方法內的變數

Camel

backColor

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

上表具體說明:

 

1、使用 Pascal 大小寫。

2、用名詞或名詞短語命名類。

3、使用全稱避免縮寫,除非縮寫已是一種公認的約定,如URL、HTML

4 、不要使用類型首碼,如在類名稱上對類使用 C 首碼。例如,使用類名稱 FileStream,而不是CFileStream。

5 、不要使用底線 (_)。

6 、有時候需要提供以字母 I 開始的類名稱,雖然該類不是介面。只要 I 是作為類名稱組成部分的整個單詞的第一個字母,這便是適當的。例如,類名稱 IdentityStore 是適當的。在適當的地方,使用複合單詞命名派生的類。衍生類別名稱的第二個部分應當是基類的名稱。例如,ApplicationException 對於從名為 Exception 的類派生的類是適當的名稱,原因ApplicationException 是一種Exception。請在應用該規則時進行合理的判斷。例如,Button 對於從 Control 派生的類是適當的名稱。儘管按鈕是一種控制項,但是將 Control 作為類名稱的一部分將使名稱不必要地加長。

public class FileStream{}public class Button{}public class String{ }
 介面

 

以下規則概述介面的命名指南:

1、用名詞或名詞短語,或者描述行為的形容詞命名介面。例如,介面名稱 IComponent 使用描述性

名詞。介面名稱 ICustomAttributeProvider 使用名詞短語。名稱 IPersistable 使用形容詞。

2、使用 Pascal 大小寫。

3、少用縮寫。

4、給介面名稱加上字母 I 首碼,以指示該類型為介面。在定義類/介面對(其中類是介面的標準

實現)時使用相似的名稱。兩個名稱的區別應該只是介面名稱上有字母 I 首碼。

5、不要使用底線 (_)。

6、當類是介面的標準執行時,定義這一對類/介面組合就要使用相似的名稱。兩個名稱的不同之處

只是介面名前有一個I首碼。

以下是正確命名的介面的樣本。

public interface IServiceProviderpublic interface IFormatable

以下程式碼範例闡釋如何定義 IComponent 介面及其標準實現 Component 類。

public interface IComponent{    // Implementation code goes here.}public class Component : IComponent{    // Implementation code goes here.}
 枚舉 (Enum)

 

   枚舉 (Enum) 實值型別從 Enum 類繼承。以下規則概述枚舉的命名指南:

1 對於 Enum 類型和值名稱使用 Pascal 大小寫。

2 少用縮寫。

3 不要在 Enum 類型名稱上使用 Enum 尾碼。

4 對大多數 Enum 類型使用單數名稱,但是對作為位域的 Enum 類型使用複數名稱。

5 總是將 FlagsAttribute 添加到位域 Enum 類型。

 

參數

 

以下規則概述參數的命名指南:

1、使用描述性參數名稱。參數名稱應當具有足夠的描述性,以便參數的名稱及其類型可用於在大多數情況下確定它的含義。

2、對參數名稱使用 Camel 大小寫。

3、 使用描述參數的含義的名稱,而不要使用描述參數的類型的名稱。開發工具將提供有關參數的類型的有意義的資訊。因此, 通過描述意義,可以更好地使用參數的名稱。少用基於類型的參數名稱,僅在適合使用它們的地方使用它們。

4、不要使用保留的參數。保留的參數是專用參數,如果需要,可以在未來的版本中公開它們。相反,如果在類庫的未來版本中需要更多的資料,請為方法添加新的重載。

5、不要給參數名稱加匈牙利語類型標記法的首碼。

以下是正確命名的參數的樣本。

Type GetType(string typeName);string Format(string format, args() As object);
 方法

 

以下規則概述方法的命名指南:

1 使用動詞或動詞短語命名方法。

2 使用 Pascal 大小寫。

3 以下是正確命名的方法的執行個體。

void   RemoveAll();void   GetCharArray();void   Invoke();
 屬性 (property)

 

以下規則概述屬性的命名指南:

1 使用名詞或名詞短語命名屬性。

2 使用 Pascal 大小寫。

3 不要使用匈牙利語標記法。

4 考慮用與屬性的基礎類型相同的名稱建立屬性。例如,如果聲明名為 Color 的屬性,則屬

性的類型同樣應該是 Color。請參閱本主題中後面的樣本。

以下程式碼範例闡釋正確的屬性命名。

public class SampleClass{    public Color BackColor    {        // Code for Get and Set accessors goes here.    }}

以下程式碼範例闡釋提供其名稱與類型相同的屬性。

public enum Color{    // Insert code for Enum here.}public class Control{    public Color Color    {        get        {            // Insert code here.        }        set        {            // Insert code here.        }    }}

以下程式碼範例不正確,原因是 Color 屬性是 Integer 類型的。

public enum Color{    // Insert code for Enum here.}public class Control{    public int Color    {        // Insert code here    }}

在不正確的樣本中,不可能引用 Color 枚舉的成員。Color.Xxx 將被解釋為訪問一個成員,

該成員首先擷取 Color 屬性( C# 中為 int 類型)的值,然後再訪問該值的某個成員(該成

員必須是 System.Int32 的執行個體成員)。

 

常量 (const)

 

以下規則概述常量的命名指南:

所有單詞大寫,多個單詞之間用 "_" 隔開。 如

public const string PAGE_TITLE = "Welcome";
 資料類型簡寫表
資料類型 資料類型簡寫 標準命名舉例

Array

arr

arrShoppingList

Boolean                      

bln

blnIsPostBack

Byte                        

byt

bytPixelValue

Char                         

chr

chrDelimiter

DateTime                    

dtm

dtmStartDate

Decimal

dec

decAverageHeight

Double                        

dbl

dblSizeofUniverse

Integer      

int

intRowCounter

Long                           

lng

lngBillGatesIncome

Object        

obj               

objReturnValue

Short

shr

shrAverage

Single

sng

sngMaximum

String

str

strFirstName

 控制項ID首碼縮寫表

控制項類型

縮寫

樣本

Button

btn

 

Check box

chk

chkReadOnly

Combobox,drop-down list box

cbo

cboEnglish

Communications

com

comFax

ContextMenu

ctxmnu

 

Control(used within procedures when the specific type is unknown)

ctr

ctrCurrent

Data grid

dgd

dgdTitles

Data list

dbl

dblPublisher

Data repeater

drp

drpLocation

Form

frm

frmEntry

Image

img

imgIcon

Label

lbl

lblHelpMessage

LinkLabel

lnk

 

List box

lst

lstPolicyCodes

ListView

lvw

lvwHeadings

Menu

mnu

mnuFileOpen

ProgressBar

prg

prgLoadFile

RadioButton

rbtn

 

RichTextBox

rtf

rtfReport

Text box

txt

txtLastName

Timer

tmr

tmrAlarm

TreeView

tre

treOrganization

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.