程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#編碼規范

C#編碼規范

編輯:關於C語言

一、類型級單位的命名

1、類。

以Class聲明的類,都必須以名詞或名詞短語命名,體現類的作用。如:

Class Indicator

當類是一個特性(Attribute)時,以Attribute結尾,當類是一個異常(Exception)時,以Exception結尾:

Class ColorSetException

Class CauseExceptionAttribute

當類只需有一個對象實例(全局對象,比如Application等),必須以Class結尾,如

Class ScreenClass

Class SystemClass

當類只用於作為其他類的基類,根據情況,以Base結尾:

MustInherit Class IndicatorBase

如果定義的類是一個窗體,那麼名字的後面必須加後綴Form,如果是Web窗體,必須加後綴Page:

Class PrintForm : Inherits Form * Windows窗體

Class StartPage : Inherits Page * Web窗體

2、枚舉和結構

同樣必須以名詞或名詞短語命名。最好體現枚舉或結構的特點,如:

Enum ColorButtons 以復數結尾,表明這是一個枚舉

Structure CustomerInfoRecord 以Record結尾,表明這是一個結構體

3、委派類型

普通的委派類型以描述動作的名詞命名,以體現委派類型實例的功能:

Delegate Sub DataSeeker (ByVal SeekString As String)

用於事件處理的委派類型,必須以EventHandler結尾,如:

Delegate Sub DataChangedEventHandler (ByVal Sender As Object, ByVal e As DataChangedEventArgs)

4、接口

與其他類型不同,接口必須要由I作為前綴,並用形容詞命名,突出表現實現接口的類將具有什麼能力:

Interface ISortable

5、模塊

模塊不是類型,他的名稱除了必須以名詞命名外,必須加以後綴Module:

Module SharedFunctionsModule

上述所有規則的共同特點是,每個組成名稱的詞語都必須是大寫開頭,禁止完全大寫或小寫的名稱。

二、方法和屬性的命名

1、方法

無論是函數還是子程序,方法都必須以動詞或動詞短語命名。無需區分函數和子程序,也無需指明返回類型。

Sub Open(ByVal CommandString As String)

Function SetCopyNumber(ByVal CopyNumber As Integer)

參數需要指明ByVal還是ByRef,這一點寫起來會讓程序邊長,但非常必要。如果沒有特別情況,都使用ByVal。參數的命名方法,參考後面“變量的命名方法”。需要重載的方法,一般不寫Overloads,根據需要編寫重載的方法。

2、屬性

原則上,字段(FIEld)是不能公開的,要訪問字段的值,一般使用屬性。屬性以簡潔清晰的名詞命名:

Property Concentration As Single

Property Customer As CustomerTypes

3、事件

事件是特殊的屬性,只能在事件處理上下文中使用。命名的原則一般是動詞或動詞的分詞,通過時態表明事件發生的時間:

Event Click As ClickEventHandler

Event ColorChanged As ColorChangedEventHangler

三、變量和常數

常數以表明常數意義的名詞命名,一般不區分常數的類型:

Const DefaultConcentration As Single = 0.01

在嚴格要求的代碼中,常數以c_開頭,如c_DefaultConcentration,但最好不要用它,它會帶來輸入困難。

普通類型的變量,只要用有意義的名字命名即可,不可使用簡稱和無意義的名稱諸如A,x1等,下面給出了良好的例子:

Dim Index As Integer

Dim NextMonthExpenditure As Decimal

Dim CustomerName As String

不能起太長的名字,應該盡量簡潔,如下面的例子:

Dim VariableUsedToStoreSystemInformation As String * 錯誤,太復雜了

Dim SystemInformation As String * 正確,簡單明了

Dim sysInfo As String * 錯誤,過於簡單

特殊情況可以考慮一個字母的變量:

Dim g As Graphic

對於控件,應該指明控件的類型,方法是直接在變量後面加以類名:

FrIEnd WithEvents 下一頁:不該用Generics實現Abstract Factory的理由 Button As Button * 按鈕

FrIEnd WithEvents ColorChoicerPanel As Panel * 面版

FrIEnd WithEvents CardFileOpenDialog As FileOpenDialog * 文件打開對話框

等等,無需規定某種類型的變量的前綴,只需把類型寫在後面就行了,試對比下列代碼:

btnCancel.Text = "&Cancel"

CancelButton.Text = "&Cancel"

顯然後者更能使閱讀者明白變量的類型是一個按鈕。

四、標簽

標簽就是用於Goto跳轉的代碼標識,由於Goto並不推薦使用,所以標簽的使用也比較苛刻。標簽必須全部大寫,中間的空格用下劃線_代替,而且應該以_開頭,比如:

_A_LABEL_EXAMPLE:

如此定義標簽是為了與其他代碼元素充分區別。

五、名字空間

通常,一個工程使用一個名字空間,通常不需要用Namespace語句,而是在工程選項的“Root Namespace”中指定,使用根名字空間可以使代碼更加整齊,容易修改,這一點是VB十足的優點。名字空間的語法是:

公司名.產品名[.組件名的復數]

如:

Namespace Ninputer.VirtualScreen

Namespace Ninputer.CardEditor.CustomeControls

隨便起一個名字空間的名字絕對不是一個好主意,一定要遵守上述規定。

六、注釋

注釋的規則繁多,這裡僅提到其中一點:正常的注釋以 *開頭,單獨的 只用來注釋暫時不用的代碼

* 這是普通的注釋

* 這段代碼在調試正確後加入

If UseHighSpeed(g) = True Then ....

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved