檸檬居VS.NET開發命名規范
以前開發的時候基本上都沒什么具體的格式規范在執行,導致代碼存放的時間一長后再去維護的時候發現這個變量或者這個參數代表的意思都不怎么明白了!這份規范是我集合了一些網絡公司以及自己的一些開發習慣綜合而來,發表上來給大家參考一下,有時候必要的規范還是需要 的,畢竟你做出來的東西后來由自己來維護的幾率比較大!
1 ADO.NET 命名規范
|
數據類型 |
數據類型簡寫 |
標準命名舉例 |
|
Connection |
con |
conNorthwind |
|
Command |
cmd |
cmdReturnProducts |
|
Parameter |
parm |
parmProductID |
|
DataAdapter |
dad |
dadProducts |
|
DataReader |
dtr |
dtrProducts |
|
DataSet |
dst |
dstNorthWind |
|
DataTable |
dtbl |
dtblProduct |
|
DataRow |
drow |
drowRow98 |
|
DataColumn |
dcol |
dcolProductID |
|
DataRelation |
drel |
drelMasterDetail |
|
DataView |
dvw |
dvwFilteredProducts |
2 WinForm Control 命名規范
|
數據類型 |
數據類型簡寫 |
標準命名舉例 |
|
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 |
fgdlgBrowser |
|
FontDialog |
fdlg |
fdlgFoot |
|
ColorDialog |
cdlg |
cdlgColor |
|
PrintDialog |
pdlg |
pdlgPrint |
3 WebControl 命名規范
|
數據類型 |
數據類型簡寫 |
標準命名舉例 |
|
AdRotator |
adrt |
Example |
|
Button |
btn |
btnSubmit |
|
Calendar |
cal |
calMettingDates |
|
CheckBox |
cbo |
cboBlue |
|
CheckBoxList |
chkl |
chklFavColors |
|
CompareValidator |
valc |
valcValidAge |
|
CustomValidator |
valx |
valxDBCheck |
|
DataGrid |
dgrd |
dgrdTitles |
|
DataList |
dlst |
dlstTitles |
|
DropDownList |
ddl |
dropCountries |
|
HyperLink |
hlk |
hlkDetails |
|
Image |
img |
imgAuntBetty |
|
ImageButton |
ibtn |
ibtnSubmit |
|
Label |
lbl |
lblResults |
|
LinkButton |
lbtn |
lbtnSubmit |
|
ListBox |
lst |
lstCountries |
|
Panel |
pnl |
pnlForm2 |
|
PlaceHolder |
plh |
plhFormContents |
|
RadioButton |
rad |
radFemale |
|
RadioButtonList |
radl |
radlGender |
|
RangeValidator |
valg |
valgAge |
|
RegularExpression |
vale |
valeEmail_Validator |
|
Repeater |
rpt |
rptQueryResults |
|
RequiredFieldValidator |
valr |
valrFirstName |
|
Table |
tbl |
tblCountryCodes |
|
TableCell |
tblc |
tblcGermany |
|
TableRow |
tblr |
tblrCountry |
|
TextBox |
txt |
txtFirstName |
|
ValidationSummary |
vals |
valsFormErrors |
|
XML |
xmlc |
xmlcTransformResults |
|
Literal |
ltl |
ltlTitle |
4、數據庫命名規范:
A、表命名:TB_表名,表名首字符大寫,如:DepartmentUsers;
B、表主鍵名稱為:表名+ID,如Document表的主鍵名為:DocumentID
C、存儲過程命名:表名+方法,如:p_my_NewsAdd,p_my_NewsUpdate;
D、視圖命名:TV_表名,如:TV_News;
E、Status為表中狀態的列名,默認值為“N”,在表中刪除操作將會改變Status的值而不真實刪除該記錄;
F、Checkintime為記錄添加時間列,默認值為系統時間;
G、表、存儲過程、視圖等對象的所有都為dbo,不要使用數據庫用戶名,這樣會影響數據庫用戶的更改。
5、C#編程命名標準:
名稱空間的命名
命名名稱空間的一般規則如下:
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 文件之中不得存在無規則的空行,比如說連續十個空行。一般來講函數與函數之間的空行為2-3行。
2 在函數體內部,在邏輯上獨立的兩個函數塊可適當空行,一般為1-2行。
2 每行長度盡量避免超過屏幕寬度,應不超過80個字符。
2 盡量用公共過程或子程序去代替重復的功能代碼段。
2 使用括號清晰地表達算術表達式和邏輯表達式的運算順序。如將 x=a*b/c*d 寫成 x=(a*b/c)*d可避免閱讀者誤解為x=(a*b)/(c*d)。
2 避免采用過于復雜的條件測試。
2 避免過多的循環嵌套和條件嵌套。
2 一個函數不要超過200行。一個文件應避免超過2000行。
2 避免使用goto語句。
2 避免采用多賦值語句,如x = y = z;。
代碼注釋規范
.cs文件的注釋
所有.cs文件開頭都要加上注釋,寫明文件創建時間、作者、用途概述等
例如:
//********************************************************
//新增日期:2004.7.19
//作者:XXX
//內容說明: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
//********************************************************
函數過程注釋 所有的函數體開頭都要加上注釋,所以注釋使用.NET注釋規范。
例如:
/// <summary>
/// 構造函數
/// </summary>
/// <param name='is_xxx1'>示例參數1</param>
/// <param name='is_xxx2'>示例參數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
浙公網安備 33010602011771號