c#命名规范
来源:互联网 发布:营销软件破解版 编辑:程序博客网 时间:2024/05/01 18:36
注重代码书写的程序员应该是一个比较有修养的人,下面这些命名规则不一定要绝对遵从,但值得参考。在应用规则
时要进行合理的判断。
Pascal 规则(帕斯卡命名)
每个单词开头的字母大写(如 TestCounter).
Camel 规则(大驼峰和小驼峰命名)
除了第一个单词外的其他单词的开头字母大写. 如. testCounter.
Upper 规则
仅用于一两个字符长的常量的缩写命名,超过三个字符长度应该应用Pascal规则.例如:
public class Math{ public const PI = ... public const E = ... public const FeigenBaumNumber = ...}
具体的规则总结如下:
类命名指导
- 类名应该为名词及名词短语,尽可能使用完整的词
- 使用Pascal规则
- 在适当的地方,使用复合单词命名派生的类。派生类名称的第二个部分应当是基类的名称。
例如,ApplicationException 对于从名为 Exception 的类派生的类是适当的名称,原因是 ApplicationException
是一种 Exception。
请在应用该规则时进行合理的判断。
例如,Button 对于从 Control 派生的类是适当的名称。尽管按钮是一种控件,但是将 Control 作为类名称的一部
分将使名称不必要地加长。
接口命名规则
- 接口名称应该为名词及名词短语或者描述其行为的形容词,尽可能使用完整的词。
枚举命名规则
- 对于 Enum 类型和值名称使用 Pascal 大小写
- 少用缩写
- 不要在 Enum 类型名称上使用 Enum 后缀
- 对大多数 Enum 类型使用单数名称,但是对作为位域的 Enum 类型使用复数名称。
- 总是将 FlagsAttribute 添加到位域 Enum 类型
变量命名
- 使用 Camel 命名规则
- 在简单的循环语句中计数器变量使用 i, j, k, l, m, n
方法命名
- 使用Pascal规则
- 对方法名采用一致的动词/宾语或宾语/动词顺序
例如,将动词置于前面时,所使用的名称诸如 InsertWidget 和 InsertSprocket;将宾语置于前面时,所使用的名
称诸如 WidgetInsert 和 SprocketInsert,在此推荐前者。
- 不要在方法中重复类的名称
例如,如果某个类已命名为 Book,则不要将某个方法称为 Book.CloseBook,而可以将方法命名为 Book.Close。
属性命名
- 名称应该为名词及名词短语
- 使用Pascal规则
- 对于bool型属性或者变量使用Is(is)作为前缀,不要使用Flag后缀,例如应该使用IsDeleted,而不要使用DeleteFlag
集合命名
- 名称应该为名词及名词短语
- 使用Pascal规则
- 名称后面追加“Collection”
(个人觉得代表集合的类后面加Collection,代表集合的变量后面加List)
事件命名
- event handlers命名使用 EventHandler 后缀
- 两个参数分别使用 sender 及 e
- 使用Pascal规则
- 事件参数使用EventArgs 后缀
- 事件命名使用语法时态反映其激发的状态,例如 Changed,Changing
- 考虑使用动词命名. 变量命名
其它常用的编码规则
- 代码的缩进。要用Tab,而不要用space
- 局部变量的名称要有意义。不要用x,y,z等等(除用于For循环变量中可使用i,j,k,l,m,n)
- 所有的成员变量声明在类的顶端,用一个换行把它和方法分开
- 用有意义的名字命名namespace,如:产品名、公司名
- 把相似的内容放在一起,比如数据成员、属性、方法、事件等,并适当的使用#region…#endregion
自定义的属性以Attribute结尾
public class AuthorAttribute : Attribute{}
自定义的异常以Exception结尾
public class AppException : Exception{}
命名规范的总结用表格表示如下:
与类相关:
标识符
大小写
示例
类/结构
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
与页面控件有关(html标签)
数据类型
数据类型简写
标准命名举例
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
与页面控件有关(html标签)
数据类型
简写举例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
- C#命名规范
- C#命名规范
- C#-C#命名规范
- C#命名规范
- C#的命名规范
- C#命名规范
- C#命名规范
- C#命名规范
- C#命名规范
- C#命名规范
- C#命名规范
- C# 控件命名规范
- C#命名规范
- C# 命名规范
- C#控件命名规范
- C#命名规范
- C#控件命名规范
- C#命名规范
- 20款最好的JavaScript开发框架
- 360安全浏览器下载提交两次问题
- 10款WordPress的插件让你的网站的移动体验
- 10免费图标生成器网页设计师
- 程序猿必备的10款web前端开发插件一
- c#命名规范
- 10款基于jquery的web前端动画特效
- GetMenuItemInfo & InsertMenuItem 枚举和追加菜单操作
- C# 获取用户的ip
- 想用好虚幻4引擎做游戏,你需要避免这些扰人的坑
- 《STL源码剖析》笔记(二)空间配置器
- C#extern
- Tomcat配置
- 开发者经常用到的css样式