ASP.net/C#编码规范

1、    ASP.net/C# 编码规范

1.1      命名规范

以下对本节使用的名词进行说明。

Pascal

所有单词第一个字母大写,其他字母小写。

例如: public void GetUserNameByGuid()

Camel

除了第一个单词,所有单词第一个字母大写,其他字母小写。

例如: string userName

Hungarian

对象类型(小写) 功能名称(大写,可以无此段) 操作对象(大写)。

例如: <asp:Label ID=”lblUserName” />

命名规范的具体要求详见表。

编码形式

相关例子

注释

文件

Pascal

DatabaseConnector

使用名词来描述类

Pascal

DatabaseConnector

类的名称应该与定义它们的文件的名称匹配

接口

Pascal

IDatabaseConnector

接口名称以一个字母 I 开头

方法

Pascal

CalculateBalance

使用动词来描述方法

私有和受保护的实例字段

camel

private float accountBalance

 

公共实例字段

Pascal

CustomerName

 

私有和受保护的类字段

camel

protected static int numberOfAccounts

 

公共类字段

Pascal

public static bool HasGoodCredit

 

static final

全部大写

public static final decimal MINNUMBALANCE = 100

 

局部变量

camel

string accountNumber = FindAccountByCustomerName(customerName)

 

循环计数

全部小写

int i =0; while(i <10) {i ++;}

 

参数

camel

GetCurrentBalance(string accountNumber )

 

属性

Pascal

public string AccountNumber {get {return accountNumber;}}

 

控件 id,name

Hungarian

<asp:TextBox ID=”tbInfoTitle ” Name=”tbInfoTitle ”></ asp:TextBox >

对象类型名缩写见 控件匈牙利命名缩写表

命名空间

Pascal

namespace DataLayer

 

单元测试方法

Pascal

TestFindAllCustomers

单元测试名称以单词 Test 开头。

解决方案

Pascal

NorthWindTrader

 

项目

Pascal

DataLayer

 

控件匈牙利命名缩写表。

标准控件

Button

btn    

CheckBox

chk    

CheckedListBox

ckl    

ComboBox

cmb    

DateTimePicker

dtp    

Label

lbl    

LinkLabel

llb    

ListBox

lst    

ListView

lvw    

MaskedTextBox

mtx    

MonthCalendar

cdr    

NotifyIcon

icn    

NumeircUpDown

nud    

PictureBox

pic    

ProgressBar

prg    

RadioButton

rdo    

RichTextBox

rtx    

TextBox

txt    

ToolTip

tip    

TreeView

tvw    

WebBrowser

wbs    

容器控件

FlowLayoutPanel

flp    

GroupBox

grp    

Panel

pnl    

SplitContainer

spl    

TabControl

tab    

TableLayoutPanel

tlp    

菜单和工具栏

ContextMenuStrip

cms    

MenuStrip

mns    

StatusStrip

ssr    

ToolStrip

tsr    

ToolStripContainer

tsc    

数据

DataSet

dts    

DataGridView

dgv    

BindingSource

bds    

BindingNavigator

bdn    

ReportViewer

rpv    

Repeater

rpt

对话框

ColorDialog

cld    

FolderBrowserDialog

fbd    

FontDialog

fnd    

OpenFileDialog

ofd    

SaveFileDialog

sfd    

组件

BackgroundWorker

bgw    

DirectoryEntry

dre    

DirectorySearcher

drs    

ErrorProvider

err    

EventLog

evl    

FileSystemWatcher

fsw    

HelpProvider

hlp    

ImageList

img    

MessageQueue

msq    

PerformanceCounter

pfc

Process

prc

SerialPort

spt

ServiceController

scl

Timer

tmr

印刷

PageSetupDialog

psd    

PrintDialog

prd    

PrintDocument

pdc    

PrintPreviewControl

prv    

PrintPreviewDialog

ppd    

水晶报表

CrystalReportViewer

crv    

ReportDocument

rpd    

其他

DomainUpDown

dud    

HScrollBar

hsc    

PropertyGrid

prg    

Splitter

spl    

TrackBar

trb    

VScrollBar

vsc    

1.2      注释规范

1 、函数、属性、类等注释

请使用 /// 三斜线注释,这种注释是基于 XML 的,不仅能导出 XML 制作帮助文档,而且在各个函数、属性、类等的使用中,编辑环境会自动带出注释,方便你的开发。以 protected protected Internal public 声明的定义注释请都以这样命名方法。

类型

相关例子

说明

文档注释

/// <summary>

/// This class represents a bank account

/// </summary>

用于文档类和方法

行末注释

int myCount = 0;  // Keep track of how many times ...

用于描述某些含义不太清晰的事物的目的

单行注释

// Here is where we gather account data

用于描述后续事物或者代码块的目的

多行注释

/* Here is

where we gather

account data */

用于在代码块处进行注释,或者用于描述后续多行代码的目的

2 、逻辑点注释

在我们认为逻辑性较强的地方加入注释,说明这段程序的逻辑是怎样的,以方便我们自己后来的理解以及其他人的理解,并且这样还可以在一定程度上排除 BUG 。在注释中写明我们的逻辑思想,对照程序,判断程序是否符合我们的初衷,如果不是,则我们应该仔细思考要修改的是注释还是程序了

1.3      代码可阅读性

1 、注意运算符的优先级,我们应该尽量使用括号明确表达式的操作顺序,避免使用默认优先级,给我们以及维护人带来困扰。

2 、避免使用不易理解的数字,用有意义的标识来替代(枚举和常量),例如:

if(productType == 0)

else if (productType == 1)

以上为不合格的做法,以下为推荐使用的方法:

if(productType == ProductType.CD )

else if (productType == ProductType.DVD )

1.4      格式

空行与空格 :尽管编译器可以忽略空行与空格,但是空行与空格可以将不同逻辑的代码单元分离,从而提高代码的可读性。

在下述几种情况下应该使用一个空行:

l  方法之间

l  声明和语句之间

l  代码的逻辑段之间

l  单行或者多行注释之前

在下述几种情况下应该使用一个空格:

l  带圆括号的关键字之后

l  参数列表的逗号之后

l  数据操作符的前后

l  在for语句中,用于将语句的3个逻辑段分开

以上格式可以在 Visual Studio 中使用 ctrl+k ctrl+d 自动排版。

1.5      解决方案和项目组织

每个解决方案都应该拥有下述项目:

l  业务项目(business   project)仅存放业务项目。

l  数据项目(data   project)处理数据库和其他用于检索或者更新数据目的的遗留系统的访问。

l  表示项目(presentiation   project)处理使用系统的终端用户所需的所有视图。

l  测试项目(test   project)存放应用程序所有的单元测试。

 

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/renpinghao/article/details/5644814
个人分类: 小结
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭