C#命名规范
MyData 就是一个帕斯卡命名的示例
myData是一个骆驼命名法,它第一个单词的第一个字母小写,后面的单词首字母大写,看起来像一个骆驼
iMyData是一个匈牙利命名法,它的小写的i说明了它的型态,后面的和帕斯卡命名相同,指示了该变量的用途.
变量命名规范:
内联变量 必须一骆驼camel命名法声明:
for example: uName,uPass;
类变量(成员变量) 同上,但一定要以一个下划线开始!
for example: _mySqlConn
常量命名规范:
带有私有访问修饰的常量必须以骆驼命名法声明,并以一个下划线开始,
for example: private int _SHOW_COUNT=20;
带有公有修饰符.受保护修饰符的常量必须以帕斯卡命名法声明,
for example: protected int COUNT=20;
数组必须以骆驼命名法声明 for example: string[5] nameArray;
string[] nameArray=new string[5];
int[] userAge={20,30,21,22,25,24,22};
结构命名规范:
结构必须以帕斯卡命名法声明,用词或者短语作为声明的首选!
for example: public struct StructName{
//结构体!
}
枚举命名规范:
枚举必须以帕斯卡命名规范命名:
for example: public enum WeekDays{
//结构体
}
=============================================================================
数据类型 |
数据类型简写 |
标准命名举例 |
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 |
控件类型 |
缩写 |
示例 |
Animated button |
ani |
aniMailBox |
Button |
btn |
|
Check box |
chk |
chkReadOnly |
ColorDialog |
clrdlg |
|
Combobox,drop-down list box |
cbo |
cboEnglish |
Communications |
com |
comFax |
ContextMenu |
ctxmnu |
|
Control(used within procedures when the specific type is unknown) |
ctr |
ctrCurrent |
CrystalReportViewer |
crvw |
|
Data |
dat |
datBiblio |
Data grid |
dgd |
dgdTitles |
Data list |
dbl |
dblPublisher |
Data repeater |
drp |
drpLocation |
Data-bound combo box |
dbcbo |
dbcboLanguage |
Data-bound grid |
dbgrd |
dbgrdQueryResult |
Data-bound list box |
dblst |
dblstJobType |
Datetime picker |
dtp |
dtpPublished |
Directory list box |
dir |
dirSource |
DomainUpDown |
dupd |
|
Drive list box |
drv |
drvTarget |
ErrorProvider |
err |
|
File list box |
fil |
filSource |
Flat scroll bar |
fsb |
fsbMove |
FontDialog |
fntdlg |
|
Form |
frm |
frmEntry |
Frame |
fra |
fraLanguage |
Gauge |
gau |
gauStatus |
Graph |
gra |
graRevenue |
Grid |
grd |
grdPrices |
GroupBox |
grp |
|
HelpProvider |
hlp |
|
Hierarchical flexgrid |
flex |
flexOrders |
HScroll bar |
hsb |
hsbVolume |
Image |
img |
imgIcon |
Image combo |
imgcbo |
imgcboProduct |
ImageList |
ils |
ilsAllIcons |
Label |
lbl |
lblHelpMessage |
Line |
lin |
linVertical |
LinkLabel |
lnk |
|
List box |
lst |
lstPolicyCodes |
ListView |
lvw |
lvwHeadings |
MAPI message |
mpm |
mpmSentMessage |
MAPI session |
mps |
mpsSession |
MCI |
mci |
mciVideo |
Menu |
mnu |
mnuFileOpen |
Month view |
mvw |
mvwPeriod |
MonthCalendar |
mcl |
|
MS Chart |
ch |
chSalesbyRegion |
MS Flex grid |
msg |
msgClients |
MS Tab |
mst |
mstFirst |
NotifyIcon |
nti |
|
NumericUpDown |
nupd |
|
OLE container |
ole |
oleWorksheet |
OpenFileDialog |
ofdlg |
|
PageSetUpDialog |
psdlg |
|
Picture box |
pic |
picVGA |
Picture clip |
clp |
clpToolbar |
PrintDocument |
prndoc |
|
PrintPreviewControl |
ppctl |
|
PrintPreviewDialog |
ppdlg |
|
ProgressBar |
prg |
prgLoadFile |
RadioButton |
rbtn |
|
Remote Data |
rd |
rdTitles |
RichTextBox |
rtf |
rtfReport |
SaveFileDialog |
sfdlg |
|
Shape |
shp |
shpCircle |
Slider |
sld |
sldScale |
Spin |
spn |
spnPages |
Splitter |
spt |
|
StatusBar |
sta |
staDateTime |
SysInfo |
sys |
sysMonitor |
TabContrl |
tab |
|
TabStrip |
tab |
tabOptions |
Text box |
txt |
txtLastName |
Timer |
tmr |
tmrAlarm |
Toolbar |
tlb |
tlbActions |
TrackBar |
trb |
|
TreeView |
tre |
treOrganization |
UpDown |
upd |
updDirection |
VScroll bar |
vsb |
vsbRate |
1 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 |
2 WinForm Control 命名规范
数据类型 |
数据类型简写 |
标准命名举例 |
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 |
3 WebControl 命名规范
数据类型 |
数据类型简写 |
标准命名举例 |
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 |
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 |
======================================================================
part2.
C# Coding Standard
一、命名
1.用pascal规则来命名方法和类型.
public class TextBox
{
public void DataBind()
{
}
}
2.用camel规则来命名局部变量和方法的参数.
string userName;
public AddUser(string userId, byte[] password);
3.所有的成员变量前加前缀 m_
public class Database
{
public string m_connectionString;
}
4.接口的名称加前缀 I.
interface ICompare
{
int compare();
}
5.自定义的属性以Attribute结尾
public class AuthorAttribute : Attribute
{
}
6.自定义的异常以Exception结尾
public class AppException : Exception
{
}
7.方法的命名.一般将其命名为动宾短语.
ShowDialog()
CreateFile()
GetPath()
8.代码的缩进.要用Tab,而不要用space.
9.局部变量的名称要有意义.不要用x,y,z等等.
string userName
10.所有的成员变量声明在类的顶端,用一个换行把它和方法分开.
11.用有意义的名字命名namespace,如:产品名、公司名.
12.建议局部变量在最接近使用它时再声明.
13.使用某个控件的值时,尽量命名局部变量.
14.把引用的系统的namespace和自定义或第三方的分开.
15.文件名要能反应类的内容,最好是和类同名,一个文件中一个类.
16.目录结构中要反应出namespace的层次.
17.大括号"{"要新起一行.
public class AuthorAttribute : Attribute
{
}
二、编码习惯.
1.用C#预定义的类名,而不要用别名.
string userName; 而不是 System.String userName;
int number; 而不是 System.Int32;
2.一行不要超过80个字符.
3.尽量不要手工更改机器生成的代码,若必须更改,一定要改成和机器生成的代码风格一样.
4.关键的语句(包括声明关键的变量)必须要写注释.
5.文字常量和数字常量不要硬编码,应该用常量类或枚举代替.
6.不要用goto系列语句.
7.不要声明public和protected的成员变量,应用property.
8.不要声明public的event,应用事件访问器.
public class Source
{
private EventHandler m_NumberChangeEvent;
public event EventHandler NumberChangeEvent
{
add
{
m_NumberChangeEvent += value;
}
remove
{
m_NumberChangeEvent -= value;
}
}
}
9.类型转换的使用规则.
Animal animal = new Dog();
Dog dog = animal as Dog;
if (dog != null)
{
}
10.生成和构建一个长的字符串时,一定要使用StringBuilder,而不用string.
11.始终使用"{ }"包含if下的语句,即使只有一条语句.
12.switch语句一定要有default来处理意外情况.
13.尽量不要使用三目运算符 ? : ,而要使用if语句.
14.尽量不用使用this引用,除非是要调用类中的另一个Constructor.
public class Person
{
public Person(string name)
{
}
public Person() : this("Jim")
{
}
}