C#命名规范

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.
局部变量的名称要有意义.不要用xyz等等.

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.
不要声明publicprotected的成员变量,应用property.



8.
不要声明publicevent,应用事件访问器.

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")

{

}

}

posted @ 2010-01-27 10:50  独行剑  阅读(2424)  评论(0编辑  收藏  举报