本文详细汇总了C#常用的命名规则。分享给大家供大家参考。具体如下:
Pascal 规则
每个单词开头的字母大写(如 TestCounter).
Camel 规则
除了第一个单词外的其他单词的开头字母大写. 如. testCounter.
Upper 规则
仅用于一两个字符长的常量的缩写命名,超过三个字符长度应该应用Pascal规则.
例如:
代码如下:
public class Math
{
public const PI = ...
public const E = ...
public const FeigenBaumNumber = ...
}
具体的规则总结如下:
类命名指导
- 类名应该为名词及名词短语,尽可能使用完整的词.
- 使用Pascal规则
- 不要使用类前缀 - 不要使用下划线字符 (_)。
- 有时候需要提供以字母 I 开始的类名称,虽然该类不是接口。只要 I 是作为类名称组成部分的整个单词的第一个字母,这便是适当的。例如,类名称 IdentityStore 就是适当的。
- 在适当的地方,使用复合单词命名派生的类。派生类名称的第二个部分应当是基类的名称。例如,ApplicationException 对于从名为 Exception 的类派生的类是适当的名称,原因是 ApplicationException 是一种 Exception。请在应用该规则时进行合理的判断。例如,Button 对于从 Control 派生的类是适当的名称。尽管按钮是一种控件,但是将 Control 作为类名称的一部分将使名称不必要地加长。
接口命名规则
- 接口名称应该为名词及名词短语或者描述其行为的形容词,尽可能使用完整的词. (Example IComponent or IEnumberable)
- 使用Pascal规则
- 使用字符I为前缀,并紧跟一个大写字母(即接口名的第一个字母大写)
例如:
代码如下:
interface ICompare
{
int Compare();
}
枚举命名规则
- 对于 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结尾
代码如下:
public class AuthorAttribute : Attribute
{
}
自定义的异常以Exception结尾
代码如下:
public class AppException : Exception
{
}
其它常用的编码规则
代码的缩进。要用Tab,而不要用space.
局部变量的名称要有意义。不要用x,y,z等等(除用于For循环变量中可使用i,j,k,l,m,n)。
所有的成员变量声明在类的顶端,用一个换行把它和方法分开。
用有意义的名字命名namespace,如:产品名、公司名。
始终使用"{ }"包含if下的语句,即使只有一条语句。
把相似的内容放在一起,比如数据成员、属性、方法、事件等,并适当的使用#region…#endregion。
命名规范的总结用表格表示如下:
与类相关:
标识符
|
大小写
|
示例
|
类/结构
|
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
|
与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
|
与页面控件有关
数据类型
|
数据类型简写
|
标准命名举例
|
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
|
请发表评论