C#語言規範



 C#語言規範

  1. 命名規範

【規則1-1】使用Pascal規則命名類名,即首字母要大寫。

【規則1-2】使用能夠反映類功能的名詞或名詞短語命名類。

【規則1-3】不要使用“I”、“C”、“_”等特定含義前綴。

【規則1-4】自定義異常類應以Exception結尾。

【規則1-5】文件名要能反映類的內容,最好是和類同名。

    1. 類字段

【規則2-1】用camel規則來命名類成員變量名稱,即首單詞(或單詞縮寫)小寫。

【規則2-2】類字段變量名前可加“_”前綴。

【規則2-3】堅決禁止在普通變量前加“m_”(這是VC老命名規則)。

c)方法

  【規則3-1】方法名採用Pascal規則,第一個字符要大寫。

【規則3-2】方法名應使用動詞或動詞短語。

【規則3-3】類中訪問修飾符或功能相同的方法應該放在一起,且公共或實現接口的方法在前。

   d)屬性

     【規則4-1】使用名詞定義屬性,屬性使用Pascal規則,首字符大寫。

【規則4-2】屬性和相應字段名稱要關聯, 可以使用“重構”菜單來生成屬性。

   e)參數

    【規則5-1】參數採用camel規則命名,且首字符小寫。

      【規則5-2】使用描述性參數名稱,參數名稱應當具有最夠的說明性。

      【規則5-3】不要給參數加匈牙利語類型表示法的前綴。

      【規則5-4】檢查方法所有輸入參數的有效性。

   f)常量

    【規則6-1】只讀常量使用Pascal命名規則,即首字母大寫。

   【規則6-2】枚舉名使用Pascal規則命名,枚舉成員本質屬於常量,命名規則同上。

      【規則6-3】枚舉值從小到大順序定義。

      【規則6-4】靜態字段或屬性採用Pascal規則,即首字符大寫。

   g)接口

    【規則7-1】接口定義使用Pascal規則,且必須以大寫“I”開頭。

      【規則7-2】接口名稱要有意義,中間不要有下劃線“_”等字符。

   【規則7-3】如果類實現了接口,名稱儘量和接口相同,只是省掉“I”字符。

   h)事件

    【規則8-1】委託名稱採用Pascal規則,即首字符大寫。

   【規則8-2】定義事件的委託要使用EventHandler後綴,且包括sendere兩個參數。

   【規則8-3】事件用到的參數類,名稱要帶EventArgs後綴。

  1. 命名空間

【規則9-1】命名空間名稱採用Pascal規則,且首字符大寫。

【規則9-2】命名空間名稱儘量反映其內容所提供的整體功能。

  1. 註釋規範

a)文件頭部註釋

【規則1-1】文件都包含文件頭, 要說明文件名、作者、創建時間、變更記錄。

    【規則1-2】推薦採用.NET形式書寫頭部註釋。

   b)類及其成員註釋

    【規則2-1】對方法和類使用“///”三斜線註釋。

   【規則2-2】代碼行文註釋採用“//”和“/**/”進行, 應該儘量說明問題。

3.行文規範

  a)縮寫規範

    【規則1-1】標識符應當直觀可望文知意,不提倡使用任何縮寫。

   【規則1-2】字符串變量推薦是用“str”或“s”開頭,採用string.Empty來初始化。

   【規則1-3】普通對象可以以“obj”開頭。

   【規則1-4】縮寫可自行定義,一般取單詞的前/後字符組成,以含義直觀爲準則。

   【規則1-5】一般情況下不要讓縮寫破壞標識符的含義。

b)排版

  【規則2-1】每行語句至少佔一行,如果語句過長(超過一屏),則該語句斷爲兩行顯示。

   【規則2-2】把相似的內容放在一起,比如字段、屬性、方法、事件等,使用“#region--#endregion”命令分組。

   【規則2-3】多個程序元素進行對等操作是,操作符之前、之後或者前後都要加空格。

   【規則2-4】每個方法的源程序行數原則上應該少於200行。

   【規則2-5】語句嵌套層次不得超過3層。

   【規則2-6】避免相同的代碼段在多個地方出現。

c)語句結構

  【規則3-1】如果使用了異常結構,一定要處理異常,一般是要寫日誌文件。

   【規則3-2】分支語句不應該使用複雜長條件,應該將長條件封裝成方法。

   【規則3-3switch語句,case後面必須接break

   【規則3-4】禁止使用goto語句進行跳轉。

   【規則3-5】行文中嚴禁出現“魔數”,特定含義的常數必須定義成枚舉或常量。

   【規則3-6】不同類型的操作符混合使用時,使用括號給出優先級。

   【規則3-7】不允許使用複雜的操作符組合等。

   【規則3-8】循環、判斷語句的程序塊部分用花括號括起來,即使只有一條語句。

   【規則3-9】在switch語句中總是要有default字句,建議使用斷言。

   【規則3-10】每個類和方法完成單一的功能,不設計多用途面面俱到的類或方法。

   【規則3-11】嚴禁使用未經初始化的變量,變量通常使用構造方法來初始。

d)代碼縮進

  【規則4-1】碰到大括號要換行。

   【規則4-2】不允許使用Java中的括號換行規範。

e)大小寫

  【規則5-1】不要創建名稱相同,但大小寫區別的任何元素。

   【規則5-2】應當大寫僅有兩個字符的縮寫。

   【規則5-3】不要把易混淆的數字和字符放在一起。

   【規則5-4】使用英文命名標識符。

f)重名規範

  【規則6-1】不允許變量名、類名、屬性名、方法名等與系統標識符重名。(系統標識符見附表)

gSQL編碼規範

  【規則7-1SQL語句全部大寫。

   【規則7-2】對較爲複雜的SQL語句加上註釋,說明其功能。

   【規則7-3】連接符ORINAND、以及=<=>=等前後加空格。

   【規則7-4】使用明確的列代替 SELECT *

h)軟件架構

  【規則8-1】數據庫中每一張表對應一個實體類/數據傳輸對象(DTO)。

   【規則8-2】實體類名稱使用表名,也可帶有Dto後綴。

   【規則8-3】三層架構應當合理使用,不應生搬硬套。

   【規則8-4】三層架構元素推薦使用後綴:

              數據傳輸對象      XxxxDto

              DAO工廠           XxxDAOFactory

              DAO接口           IXxxxDAO

              服務接口          IxxxxService

              DAO的數據庫實現   XxxxDAOOracle/XxxxDAOInfomix

              業務邏輯          XxxxManager

i)系統

  【規則9-1】在國內不要隨便使用設計模式等代碼模式,因爲並不流行。

   【規則9-2】系統輸入、資源操作(如內存分配、文件及目錄操作)、網絡操作(如通信、調用等)、任務間的操作(如通信、調用等)時必須進行錯誤、超時、或則異常處理。

   【規則9-3】模塊編寫應該有完善的測試方面的考慮。

 

 

附表

1各種類型命名規範總結

類型

命名規則

注意事項

實例

類或結構

Pascal

首字符大寫

HttpContext

接口

Pascal

加前綴I

IDataAdaper

枚舉名

Pascal

首字符大寫

CommandType

枚舉值

Pascal

首字符大寫

CommandType.Text

事件

Pascal

首字符大寫

SelectedIndexChanged

自定義異常

Pascal

加後綴Exception

ArgumentException

公共字段

Pascal

首字符大寫

Int32.MaxValue

方法

Pascal

首字符大寫

ToString()

命名空間

Pascal

首字符大寫

System.Xml

屬性

Pascal

首字符大寫

BackColor

保護或私有字段

Camel

首字符小寫

myVariable

參數

Camel

首字符小寫

cmdText

 

2數據類型縮寫規則

數據類型

數據類型縮寫

標準命名實例

Bool

b/is

IsVisable

Float

F

FPrice

Double

D

DPrice

Unit

U

UAge

Int

I

INumber

Char

Ch

ChCode

Byte

Bt

BtImages

String

Str

StrName

Struct

St

StStudent

Window

Wnd

WndMain

ArrayList

Lst

LstStudents

Array

Arr

ArrStudents

Hashtable

Ht

Htstudents

 

3 Windows控件縮寫規則

控件類型

控件名稱

控件類型縮寫

實例

Label

標籤框

Lbl

LblMessage

LinkLabel

超鏈接標籤框

Llbl

LlblToday

Button

按鈕

Btn

BtnSave

TextBox

文本框

Txt

TxtName

MainMenu

菜單欄

Mmnu

MmnuFile

CheckBox

多選框

Chk

ChkStock

RadioButton

單選框

Rbtn

RbtnSelected

GroupBox

組合框

Gbx

GbxMain

PictureBox

圖片框

Pic

PicImage

Panel

 

Pnl

PnlBody

DataGrid

 

Dgrd

DgrdView

ListBox

 

Lst

LstProducts

CheckedListBox

 

Clst

ClstChecked

ComboBox

組合框

Cbo

CboMenu

ListView

列表視圖

Lvw

LvwBrowser

TreeView

樹視圖

Tvw

TvwType

TabControl

 

Tctl

TctlSelected

DateTimePicker

 

Dtp

DtpStartDate

HscrollBar

 

Hsb

HsbImage

VscrollBar

 

Vsb

VsbImage

Timer

 

Tmr

TmrCount

ImageList

 

Ilst

IlstImage

ToolBar

工具欄

Tlb

TlbManage

StatusBar

狀態欄

Stb

StbFootPrint

OpenFileDialog

 

Odlg

OdlgFile

SaveFileDialog

 

Sdlg

SdlgSave

FoldBrowserDialog

 

Fbdlg

FbdlgBrowser

FontDialog

 

Fdlg

FdlgFoot

ColorDialog

 

Cdlg

CdlgColor

PrintDialog

 

Pdlg

PdlgPrint

 

 

4數據庫對象縮寫規範

數據庫對象

名稱

簡寫

實例

Connection

 

Con

ConNorthwind

Command

 

Cmd

CmdReturnProducts

Parameter

 

Parm

ParmProductID

DataAdapter

 

Dap

DapProducts

DataReader

 

Dtr

DtrProducts

DataSet

 

Ds

DsNorthwind

DataTable

 

Dt

DtProduct

DataRow

 

Drow

DrowRow

DataColumn

 

Dcol

DcolProductID

DataRelation

 

Drl

DrlMasterDetail

DataView

 

Dvw

DvwFilteredProducts

 

發佈了39 篇原創文章 · 獲贊 59 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章