DotNet编程规范1.0(Draft)
好的编码规范对于顺利交付产品是很重要的。编码规范能够推广好的实践,减少编码缺陷,便于项目组内的沟通。
1 命名规范
1.1基本原则
1. 必须使用拼写正确的英文单词。不允许使用汉语拼音或者其他任何形式的缩写。
2. 词汇必须完整。尽量使用任何简写形式。 例如不允许将Message写成Msg.如不可避免要使用缩写,应提供缩写单词字典。
3. 如果名字代表复数意义,应使用其正确的复数形式。
4. 约定俗成的字母缩写,可作为一个单词使用。
5. 应尽量将标志符的意义描述清楚。即使用一个以上的单词来表示一项内容。
6. 类和方法的命名:使用Pascal命名方法,所有首字母大写。
public class SomeClass
{
const int DefaultSize = 2000;
public void SomeClass()
{
}
}
7. 变量和形参的命名:使用驼峰命名方法,第一单词首字母小写。
void MyMethod(int someNumber)
{
int currentNumber;
}
8. 接口的命名:使用I作为前缀,其后采用Pascal命名方法。
public interface IMyIterface
{
}
9. 私有变量的命名:使用m_作为前缀,其后采用Pascal命名方法。
public class MyClass
{
private int m_CurrentNumber;
}
10. 常量的命名:所有字母大写,单词之间用下划线分隔。
11. 自定义的属性类用Attribute做后缀。
12. 自定义的异常类用Exception做后缀。
13. 函数的命名一般采用谓-宾结构,比如:ShowDialog()。
14. 如果函数有返回值,函数名尽量包含返回值得描述,如:GetObjectState()。
15. 尽量使用C#预定义的类型,而不是System命名空间中定义的别名:
使用object而不是System.Object
使用int 而不是System.Int32
使用string 而不是 System.String
16. 使用有意义的命名空间名,如公司名或产品名。
17. 文件名采用pascal命名法,应该反映它包含的类。
18. 当使用局部类型,并且每个part单独位于一个文件时,文件命名应该以P1,P2,...标识。
1.2变量命名前缀(参考)
a)
基本类型变量
类型
|
前缀
|
示例
|
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
|
sht
|
shtAverage
|
Single
|
sng
|
sngMaximum
|
String
|
str
|
strFirstName
|
b)
控件命名规范
类型
|
前缀
|
示例
|
AdRotator
|
adrt
|
adrtTopAd
|
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
|
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)
ADO.NET
控件命名规范
类型
|
前缀
|
示例
|
Connection
|
conn
|
connNorthwind
|
Command
|
cmd
|
cmdReturnProducts
|
Parameter
|
parm
|
parmProductID
|
DataAdapter
|
da
|
daProducts
|
DataReader
|
dtr
|
dtrProducts
|
DataSet
|
ds
|
dsNorthWind
|
DataTable
|
dt
|
dtProduct
|
DataRow
|
dr
|
drRow98
|
DataColumn
|
dc
|
dcProductID
|
DataRelation
|
drel
|
drelMasterDetail
|
DataView
|
dvw
|
dvwFilteredProducts
|
d)
其他
类型
|
前缀
|
示例
|
Form
|
frm
|
frmPetShop
|
Class
|
cls/C
|
clsCar
|
Module
|
mod
|
modListen
|
GroupBox
|
grp
|
grpMessage
|
PictureBox
|
pic
|
picUeInfo
|
ComboBox
|
cbo
|
cboFactory
|
TreeView
|
tvw
|
tvwServer
|
ListView
|
lvw
|
lvwCustomer
|
TabControl
|
tab
|
tabStatic
|
DateTimePicker
|
dtp
|
dtpNow
|
Timer
|
tmr
|
tmrSend
|
Splitter
|
spl
|
splLeft
|
ProgressBar
|
pbar
|
pbarSpan
|
RichTextBox
|
rtf
|
rtfDocument
|
ImageList
|
imgl
|
imglPhotos
|
ToolBar
|
tlb
|
tlbCommand
|
MenuItem
|
mnu
|
mnuFile
|
Date
|
dat
|
datStart
|
Structure
|
strc
|
strcPerson
|
e)
自定义类变量
以
obj
作为前缀。