C#命名规则和开发习惯(引用于天上的星星亮晶晶(zj492)的blog)

原创 2004年08月18日 14:03:00

一、命名

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

1.pascal规则来命名方法和类型,类名添加cls前缀。

Pascal规则是:第一个字母必须大写,并且后面的并发连结词的第一个字母均为大写,例如象GeneralManager、SmallDictionary、StringUtil都是合乎这种规则的类名。

public class clsTextBox

{

     public void DataBind() 

     {

     }

}

 

2.camel规则来命名局部变量和方法的参数.并添加数据类型前缀。前缀但参考附录)

camel规则是:第一个子串外的所有子串的第一个字母大写

string strUserName;

public AddUser(string strUserId, byte[] byPassword);

 

3.所有的成员变量前加前缀 m_

public class Database

{

     public string m_strConnectionString;

}

 

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.大括号"{"要新起一行.

public class AuthorAttribute : Attribute

{

}

17常量

全部大写,单词之间以 “_” 分隔

例如:USER_PASSWORD 

 

二、编码习惯.

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/else下的语句,即使只有一条语句.

 

12.switch语句一定要有default来处理意外情况.

 

13.尽量不用使用this引用,除非是要调用类中的另一个Constructor.

public class Person

{

     public Person(string name)

     {

     }

    

     public Person() : this("Jim")

     {

     }

}

 

数据库命名规则

 

1、数据库对象命名规则

表:    tb_e|r|b_<TableName>  首字母大写

            e—业务表中相对独立的实体表(例如:课程资源表……)

            r—业务中产生的关联表(例如:选课表……)

            b—系统中的基本表(例如:类型表、民族、地区……)

视图:    vw_<ViewName>       首字母大写

存储过程:sp_<SpName>          首字母大写

触发器:  ti | tu | td_<TriggerName> 首字母大写

函数过程:fn_<FunctionName>     首字母大写

 

3、数据项命名规则

列名命名规则:首字母大写

 

注:建议名称部分用英文单词或单词简写

 

 

附录:

 

数据类型     

bool-b

float-flt

unit-ui

byte-by

int—i

ulong-ulng

char-ch

long—lng

ushort-usht

decimal-dec

sbyte-sby

string-str

double-dbl

short-sht

object-obj

emun-emn

struct-st

 

 

控件命名:

Control type                        prefix             Example

3D Panel                          pnl             pnlGroup

ADO Data                          ado             adoBiblio

Animated button                   ani             aniMailBox

Button                            btn             btnOK

Check box                         chk             chkReadOnly

Combo box                         cbo             cboEnglish

Dropdown list box                 ddl             ddlUser

Command button                    cmd             cmdExit

Common dialog                     dlg             dlgFileOpen

Communications                    com             comFax

Control (used within procedures when the specific type is unknown)

ctr             ctrCurrent

Data                              dat             datBiblio

Data-bound combo box              dbcbo           dbcboLanguage

Data-bound grid                   dbgrd           dbgrdQueryResult

Data-bound list box               dblst           dblstJobType

Data combo                        dbc             dbcAuthor

Data grid                         dgd             dgdTitles

Data list                         dbl             dblPublisher

Data repeater                     drp             drpLocation

Date picker                       dtp             dtpPublished

Directory list box                dir             dirSource

Drive list box                    drv             drvTarget

File list box                     fil             filSource

Flat scroll bar                   fsb             fsbMove

Form                              frm             frmEntry

Frame                             fra             fraLanguage

Gauge                             gau             gauStatus

Graph                             gra             graRevenue

Grid                              grd             grdPrices

Hierarchical flexgrid             flex            flexOrders

Horizontal scroll bar             hsb             hsbVolume

Image                             img             imgIcon

Image combo                       imgcbo          imgcboProduct

ImageList                         ils             ilsAllIcons

Label                             lbl             lblHelpMessage

Lightweight check box             lwchk           lwchkArchive

Lightweight combo box             lwcbo           lwcboGerman

Lightweight command button        lwcmd           lwcmdRemove

Lightweight frame                 lwfra           lwfraSaveOptions

Lightweight horizontal scroll bar lwhsb           lwhsbVolume

Lightweight list box              lwlst           lwlstCostCenters

Lightweight option button         lwopt           lwoptIncomeLevel

Lightweight text box              lwtxt           lwoptStreet

Lightweight vertical scroll bar   lwvsb           lwvsbYear

Line                              lin             linVertical

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

MS Chart                         ch              chSalesbyRegion

MS Flex grid                      msg             msgClients

MS Tab                            mst             mstFirst

OLE container                     ole             oleWorksheet

Option button                     opt             optGender

Picture box                       pic             picVGA

Picture clip                      clp             clpToolbar

ProgressBar                       prg             prgLoadFile

Remote Data                       rd              rdTitles

RichTextBox                       rtf             rtfReport

Shape                             shp             shpCircle

Slider                            sld             sldScale

Spin                              spn             spnPages

StatusBar                         sta             staDateTime

SysInfo                           sys             sysMonitor

TabStrip                          tab             tabOptions

Text box                          txt             txtLastName

Timer                             tmr             tmrAlarm

Toolbar                           tlb             tlbActions

TreeView                          tre             treOrganization

UpDown                            upd             updDirection

Vertical scroll bar               vsb             vsbRate

【计蒜客】天上的星星

在一个星光摧残的夜晚,蒜头君一颗一颗的数这天上的星星。 蒜头君给在天上巧妙的画了一个直角坐标系,让所有的星星都分布在第一象。天上有 nn 颗星星,他能知道每一颗星星的坐标和亮度。 现在,蒜头君问自...
  • Action_now_zj
  • Action_now_zj
  • 2018-02-06 14:48:47
  • 111

C#命名规则、开发习惯和风格

  • 2009年11月26日 14:33
  • 350KB
  • 下载

老公,我要天上的星星...纯娱乐笑话(zz)

  我觉得好笑 就拿来贴(请各位别打击我弱小的自尊心)1.最郁闷的  我:老公,是不是我要什么都会给我啊?  他:能实现的,尽量……  我:我要天上的星星。  他:你要太阳月亮,可不好弄,星星好说啊。...
  • danielinbiti
  • danielinbiti
  • 2006-03-30 22:26:00
  • 1654

计蒜客——2018蓝桥杯模拟赛(一)之天上的星星

在一个星光摧残的夜晚,蒜头君一颗一颗的数这天上的星星。蒜头君给在天上巧妙的画了一个直角坐标系,让所有的星星都分布在第一象。天上有 nn 颗星星,他能知道每一颗星星的坐标和亮度。现在,蒜头君问自己 qq...
  • qq_40788630
  • qq_40788630
  • 2018-02-20 20:59:35
  • 252

【计蒜客-天上的星星】

传送门在一个星光摧残的夜晚,蒜头君一颗一颗的数这天上的星星。蒜头君给在天上巧妙的画了一个直角坐标系,让所有的星星都分布在第一象。天上有 nn 颗星星,他能知道每一颗星星的坐标和亮度。现在,蒜头君问自己...
  • c_circle
  • c_circle
  • 2018-01-22 20:32:04
  • 267

计蒜客-天上的星星【前缀和+容斥】

在一个星光摧残的夜晚,蒜头君一颗一颗的数这天上的星星。蒜头君给在天上巧妙的画了一个直角坐标系,让所有的星星都分布在第一象。天上有 nn 颗星星,他能知道每一颗星星的坐标和亮度。现在,蒜头君问自己 qq...
  • u013852115
  • u013852115
  • 2018-01-22 16:49:57
  • 226

C#命名规则

  • 2015年11月24日 21:38
  • 25KB
  • 下载

1600 计算几何:数星星

计算几何:数星星 Time Limit(Common/Java):1000MS/3000MS Memory Limit:65536KByte Total Submit:72 Accepted:24 D...
  • liangzhaoyang1
  • liangzhaoyang1
  • 2016-04-02 15:29:44
  • 936

C# 命名规则,编程风格与开发习惯

  • 2009年02月17日 19:50
  • 57KB
  • 下载

C#命名规则和开发习惯

  • 2010年11月09日 17:21
  • 77KB
  • 下载
收藏助手
不良信息举报
您举报文章:C#命名规则和开发习惯(引用于天上的星星亮晶晶(zj492)的blog)
举报原因:
原因补充:

(最多只允许输入30个字)