本文詳細匯總了C#常用的命名規則。分享給大家供大家參考。具體如下:
Pascal 規則
每個單詞開頭的字母大寫(如 TestCounter).
Camel 規則
除了第一個單詞外的其他單詞的開頭字母大寫. 如. testCounter.
Upper 規則
僅用于一兩個字符長的常量的縮寫命名,超過三個字符長度應該應用Pascal規則.
例如:
- 類名應該為名詞及名詞短語,盡可能使用完整的詞.
- 使用Pascal規則
- 不要使用類前綴 - 不要使用下劃線字符 (_)。
- 有時候需要提供以字母 I 開始的類名稱,雖然該類不是接口。只要 I 是作為類名稱組成部分的整個單詞的第一個字母,這便是適當的。例如,類名稱 IdentityStore 就是適當的。
- 在適當的地方,使用復合單詞命名派生的類。派生類名稱的第二個部分應當是基類的名稱。例如,ApplicationException 對于從名為 Exception 的類派生的類是適當的名稱,原因是 ApplicationException 是一種 Exception。請在應用該規則時進行合理的判斷。例如,Button 對于從 Control 派生的類是適當的名稱。盡管按鈕是一種控件,但是將 Control 作為類名稱的一部分將使名稱不必要地加長。
接口命名規則
- 接口名稱應該為名詞及名詞短語或者描述其行為的形容詞,盡可能使用完整的詞. (Example IComponent or IEnumberable)
- 使用Pascal規則
- 使用字符I為前綴,并緊跟一個大寫字母(即接口名的第一個字母大寫)
例如:
- 對于 Enum 類型和值名稱使用 Pascal 大小寫。
- 少用縮寫。
- 不要在 Enum 類型名稱上使用 Enum 后綴。
- 對大多數 Enum 類型使用單數名稱,但是對作為位域的 Enum 類型使用復數名稱。
- 總是將 FlagsAttribute 添加到位域 Enum 類型。
變量命名
- 在簡單的循環語句中計數器變量使用 i, j, k, l, m, n
- 使用 Camel 命名規則
方法命名
- 使用Pascal規則
- 對方法名采用一致的動詞/賓語或賓語/動詞順序。例如,將動詞置于前面時,所使用的名稱諸如 InsertWidget 和 InsertSprocket;將賓語置于前面時,所使用的名稱諸如 WidgetInsert 和 SprocketInsert。
- 推薦名稱應該為動詞或動詞短語.例如Save,SaveCustomer,而不要使用CustomerSave
- 不要在方法中重復類的名稱。例如,如果某個類已命名為 Book,則不要將某個方法稱為 Book.CloseBook,而可以將方法命名為 Book.Close。
屬性命名
- 名稱應該為名詞及名詞短語
- 使用Pascal規則
- 對于bool型屬性或者變量使用Is(is)作為前綴,不要使用Flag后綴,例如應該使用IsDeleted,而不要使用DeleteFlag
集合命名
- 名稱應該為名詞及名詞短語
- 使用Pascal規則
- 名稱后面追加“Collection”
事件命名
- event handlers命名使用 EventHandler 后綴.
- 兩個參數分別使用 sender 及 e
- 使用Pascal規則
- 事件參數使用EventArgs 后綴
- 事件命名使用語法時態反映其激發的狀態,例如 Changed,Changing.
- 考慮使用動詞命名. 變量命名
- 在簡單的循環語句中計數器變量使用 i, j, k, l, m, n
- 使用 Camel 命名規則
自定義的屬性以Attribute結尾
與類相關:
| 標識符 | 大小寫 | 示例 |
| 類/結構 | Pascal | AppDomain |
| 枚舉類型 | Pascal | ErrorLevel |
| 枚舉值 | Pascal | FatalError |
| 事件 |
Pascal
| ValueChange |
| 異常類 | Pascal | WebException 注意 總是以 Exception 后綴結尾。 |
| 只讀的靜態字段 | Pascal | RedValue |
| 接口 | Pascal | IDisposable 注意 總是以 I 前綴開始。 |
| 集合 | Pascal | CustomerCollection 注意 總是以Collection結束 |
| 方法 | Pascal | ToString |
| 命名空間 | Pascal | System.Drawing |
| 參數 | Camel | typeName |
| 屬性 | Pascal | BackColor |
| 受保護的實例字段 | Camel | redValue 注意 很少使用。屬性優于使用受保護的實例字段。 |
| 公共實例字段 | Pascal | RedValue 注意 很少使用。屬性優于使用公共實例字段。 |
變量和方法參數命名:根據不同的數據類型前綴+首字母大寫的變量描述
與變量命名相關
| 類型 | 前綴 | 示例 |
| 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 |
| 數據類型 | 數據類型簡寫 | 標準命名舉例 |
| 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 |
| 數據類型 | 數據類型簡寫 | 標準命名舉例 |
| 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 |
| 數據類型 | 數據類型簡寫 | 標準命名舉例 |
| 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 |
新聞熱點
疑難解答