C#常用的命名規(guī)則匯總
本文詳細(xì)匯總了C#常用的命名規(guī)則。分享給大家供大家參考。具體如下:
Pascal 規(guī)則
每個(gè)單詞開頭的字母大寫(如 TestCounter).
Camel 規(guī)則
除了第一個(gè)單詞外的其他單詞的開頭字母大寫. 如. testCounter.
Upper 規(guī)則
僅用于一兩個(gè)字符長的常量的縮寫命名,超過三個(gè)字符長度應(yīng)該應(yīng)用Pascal規(guī)則.
例如:
{
public const PI = ...
public const E = ...
public const FeigenBaumNumber = ...
}
具體的規(guī)則總結(jié)如下:
類命名指導(dǎo)
- 類名應(yīng)該為名詞及名詞短語,盡可能使用完整的詞.
- 使用Pascal規(guī)則
- 不要使用類前綴 - 不要使用下劃線字符 (_)。
- 有時(shí)候需要提供以字母 I 開始的類名稱,雖然該類不是接口。只要 I 是作為類名稱組成部分的整個(gè)單詞的第一個(gè)字母,這便是適當(dāng)?shù)摹@?,類名稱 IdentityStore 就是適當(dāng)?shù)摹?br />
- 在適當(dāng)?shù)牡胤?,使用?fù)合單詞命名派生的類。派生類名稱的第二個(gè)部分應(yīng)當(dāng)是基類的名稱。例如,ApplicationException 對(duì)于從名為 Exception 的類派生的類是適當(dāng)?shù)拿Q,原因是 ApplicationException 是一種 Exception。請(qǐng)?jiān)趹?yīng)用該規(guī)則時(shí)進(jìn)行合理的判斷。例如,Button 對(duì)于從 Control 派生的類是適當(dāng)?shù)拿Q。盡管按鈕是一種控件,但是將 Control 作為類名稱的一部分將使名稱不必要地加長。
接口命名規(guī)則
- 接口名稱應(yīng)該為名詞及名詞短語或者描述其行為的形容詞,盡可能使用完整的詞. (Example IComponent or IEnumberable)
- 使用Pascal規(guī)則
- 使用字符I為前綴,并緊跟一個(gè)大寫字母(即接口名的第一個(gè)字母大寫)
例如:
{
int Compare();
}
枚舉命名規(guī)則
- 對(duì)于 Enum 類型和值名稱使用 Pascal 大小寫。
- 少用縮寫。
- 不要在 Enum 類型名稱上使用 Enum 后綴。
- 對(duì)大多數(shù) Enum 類型使用單數(shù)名稱,但是對(duì)作為位域的 Enum 類型使用復(fù)數(shù)名稱。
- 總是將 FlagsAttribute 添加到位域 Enum 類型。
變量命名
- 在簡單的循環(huán)語句中計(jì)數(shù)器變量使用 i, j, k, l, m, n
- 使用 Camel 命名規(guī)則
方法命名
- 使用Pascal規(guī)則
- 對(duì)方法名采用一致的動(dòng)詞/賓語或賓語/動(dòng)詞順序。例如,將動(dòng)詞置于前面時(shí),所使用的名稱諸如 InsertWidget 和 InsertSprocket;將賓語置于前面時(shí),所使用的名稱諸如 WidgetInsert 和 SprocketInsert。
- 推薦名稱應(yīng)該為動(dòng)詞或動(dòng)詞短語.例如Save,SaveCustomer,而不要使用CustomerSave
- 不要在方法中重復(fù)類的名稱。例如,如果某個(gè)類已命名為 Book,則不要將某個(gè)方法稱為 Book.CloseBook,而可以將方法命名為 Book.Close。
屬性命名
- 名稱應(yīng)該為名詞及名詞短語
- 使用Pascal規(guī)則
- 對(duì)于bool型屬性或者變量使用Is(is)作為前綴,不要使用Flag后綴,例如應(yīng)該使用IsDeleted,而不要使用DeleteFlag
集合命名
- 名稱應(yīng)該為名詞及名詞短語
- 使用Pascal規(guī)則
- 名稱后面追加“Collection”
事件命名
- event handlers命名使用 EventHandler 后綴.
- 兩個(gè)參數(shù)分別使用 sender 及 e
- 使用Pascal規(guī)則
- 事件參數(shù)使用EventArgs 后綴
- 事件命名使用語法時(shí)態(tài)反映其激發(fā)的狀態(tài),例如 Changed,Changing.
- 考慮使用動(dòng)詞命名. 變量命名
- 在簡單的循環(huán)語句中計(jì)數(shù)器變量使用 i, j, k, l, m, n
- 使用 Camel 命名規(guī)則
自定義的屬性以Attribute結(jié)尾
{
}
自定義的異常以Exception結(jié)尾
{
}
其它常用的編碼規(guī)則
代碼的縮進(jìn)。要用Tab,而不要用space.
局部變量的名稱要有意義。不要用x,y,z等等(除用于For循環(huán)變量中可使用i,j,k,l,m,n)。
所有的成員變量聲明在類的頂端,用一個(gè)換行把它和方法分開。
用有意義的名字命名namespace,如:產(chǎn)品名、公司名。
始終使用"{ }"包含if下的語句,即使只有一條語句。
把相似的內(nèi)容放在一起,比如數(shù)據(jù)成員、屬性、方法、事件等,并適當(dāng)?shù)氖褂?region…#endregion。
命名規(guī)范的總結(jié)用表格表示如下:
與類相關(guān):
標(biāo)識(shí)符 |
大小寫 |
示例 |
類/結(jié)構(gòu) |
Pascal |
AppDomain |
枚舉類型 |
Pascal |
ErrorLevel |
枚舉值 |
Pascal |
FatalError |
事件 |
Pascal
|
ValueChange |
異常類 |
Pascal |
WebException 注意 總是以 Exception 后綴結(jié)尾。 |
只讀的靜態(tài)字段 |
Pascal |
RedValue |
接口 |
Pascal |
IDisposable 注意 總是以 I 前綴開始。 |
集合 |
Pascal |
CustomerCollection 注意 總是以Collection結(jié)束 |
方法 |
Pascal |
ToString |
命名空間 |
Pascal |
System.Drawing |
參數(shù) |
Camel |
typeName |
屬性 |
Pascal |
BackColor |
受保護(hù)的實(shí)例字段 |
Camel |
redValue 注意 很少使用。屬性優(yōu)于使用受保護(hù)的實(shí)例字段。 |
公共實(shí)例字段 |
Pascal |
RedValue 注意 很少使用。屬性優(yōu)于使用公共實(shí)例字段。 |
變量和方法參數(shù)命名:根據(jù)不同的數(shù)據(jù)類型前綴+首字母大寫的變量描述
與變量命名相關(guān)
類型 |
前綴 |
示例 |
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 |
與ADO.NET有關(guān)
數(shù)據(jù)類型 |
數(shù)據(jù)類型簡寫 |
標(biāo)準(zhǔn)命名舉例 |
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 |
與頁面控件有關(guān)
數(shù)據(jù)類型 |
數(shù)據(jù)類型簡寫 |
標(biāo)準(zhǔn)命名舉例 |
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 |
與頁面控件有關(guān)
數(shù)據(jù)類型 |
數(shù)據(jù)類型簡寫 |
標(biāo)準(zhǔn)命名舉例 |
AdRotator |
adrt |
Example |
Button |
btn |
btnSubmit |
Calendar |
cal |
calMettingDates |
CheckBox |
chk |
chkBlue |
CheckBoxList |
chkl |
chklFavColors |
CompareValidator |
valc |
valcValidAge |
CustomValidator |
valx |
valxDBCheck |
DataGrid |
dgrd |
dgrdTitles |
DataList |
dlst |
dlstTitles |
DropDownList |
drop |
dropCountries |
HyperLink |
lnk |
lnkDetails |
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_r |
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 |
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
C# winform 模擬鍵盤輸入自動(dòng)接入訪問網(wǎng)絡(luò)的實(shí)例
本篇文章主要介紹了C# winform 模擬鍵盤輸入自動(dòng)接入訪問網(wǎng)絡(luò),有興趣的可以了解一下。2016-11-11C#實(shí)現(xiàn)自定義Dictionary類實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)自定義Dictionary類,較為詳細(xì)的分析了Dictionary類的功能、定義及用法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08C#?實(shí)例解釋面向?qū)ο缶幊讨械膯我还δ茉瓌t(示例代碼)
本文我介紹了?SOLID?原則中的單一功能原則(single-responsibility?principle),并通過?C#?代碼示例簡明地詮釋了它的含意和實(shí)現(xiàn),對(duì)C#?面向?qū)ο缶幊淘瓌t感興趣的朋友跟隨小編一起看看吧2022-02-02C#內(nèi)置隊(duì)列類Queue用法實(shí)例
這篇文章主要介紹了C#內(nèi)置隊(duì)列類Queue用法,實(shí)例分析了C#內(nèi)置隊(duì)列的添加、移除等相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04C# 如何實(shí)現(xiàn)一個(gè)帶通知的List<T>
這篇文章主要介紹了C# 如何實(shí)現(xiàn)一個(gè)帶通知的List<T>,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-02-02unity實(shí)現(xiàn)動(dòng)態(tài)排行榜
這篇文章主要為大家詳細(xì)介紹了unity實(shí)現(xiàn)動(dòng)態(tài)排行榜,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07