c#编程典范榜样和数据库命名典范榜样.docx
- 文档编号:26419746
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:14
- 大小:22.79KB
c#编程典范榜样和数据库命名典范榜样.docx
《c#编程典范榜样和数据库命名典范榜样.docx》由会员分享,可在线阅读,更多相关《c#编程典范榜样和数据库命名典范榜样.docx(14页珍藏版)》请在冰豆网上搜索。
c#编程典范榜样和数据库命名典范榜样
编程规范
代码编写
1.对象的认识=模糊认识+清楚认识。
当前类解决的是清楚认识部分,模糊认识由将来派生类完成。
2.方法的输入、输出要有严格的定义。
要做到功能明确,不越权。
3.除非在万不得以的情况下,在类中不能定义公用字段,字段的引用尽量要采用属性形式。
4.不可修改的字段应用Const来修饰,并说明类型。
5.对你所写的每一个文件都加上相关的标准化注释,一般应包括:
文件的作用、作者及时间等;例如:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//作者:
//时间:
//作用:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
6.为你定义的类写详细的注释,包括作者、时间、修改信息、基本的算法等。
类实现功能的注释方法如下:
///
///class的摘要说明。
///
7.为你定义的每一个方法、字段、属性写详细的注释,包括输入输出参数说明、返回值说明、方法功能说明;如:
///
///该方法的摘要信息
///
///
///
publicintModifyData(stringsql)
{
}
8.写注释的时候语义要明确,注释的长度最好不要超过一句话
9.所有标识符(类名、方法名、字段名、属性名等)均要求意义明确易于理解,不用关键字作为标识符,名字中避免使用易混淆的数字
10.避免在代码中直接使用数字等不确定意义的词,尽量使用有意义的串值代替;如:
conststaticPI=3.1415926
11.尽量不用或少用goto语句,不要在同一行中写多个语句,利用添加空格来清晰地表示语句的成分
12.不要写太长的if(){...},for(){...},While(...){}或者太多的嵌套;对上述较长者在范围结束处加注释。
如//for循环结束
13.可以在程序中添加一些空格、空行和缩进等技巧,帮助人们从视觉上看清程序的结构,在使用缩进的时候应使用“Tab”键,而不是使用空格键
14.在向工程中添加新页面时,.net会自动帮你生成一段代码,其中包括OnInit(Eventargse)和InitializeComponent()方法,在页面中添加事件的时候会自动在InitializeComponent()方法安装事件;但是在此过程中会出现一些问题,因此不允许使用OnInit()方法,直接把这段话删除;为此,我们因在代码中添加Page_Init()方法以替代OnInit()方法,Page_Init事件可以通过页面构造函数安装,再由Page_Init调用InitializeComponent()方法
15.为了便于规范,所有的页面都必需从kaiyuan.PageBase派生,而不是直接从System.Web.UI.Page派生
16.在Page_Load方法开始处添加PageDatadata=CheckPage(pageID)语句,其中pageID为当前操作页面的id,具体值见PageID类
命名指南
总的来说除了参数(包括方法内部定义的临时变量)和private作用域的字段采用Camel大小写的命名规则之外,其他的都采用Pascal大小写命名规则;如果字段是一个控件的实例,必须在后面跟上控件名;不要在字段前加g_或s_或m_等前缀;const字段一般全用大写;例如一个有关文件名的各种命名:
常量:
privateconststringFILE_NAME="reg.aspx";
字段:
privatestringfileName;
字段:
publicstringFileName;
控件:
protectedSystem.Web.UI.WebControls.TextBoxFileNameTextBox;
参数:
stringfileName;
有关具体的命名详细见以下各部分
1大写样式
使用下面的三种大写标识符约定
1.Pascal大小写
将标识符的首字母和后面连接的每个单词的首字母都大写。
可以对三字符或更多字符的标识符使用Pascal大小写。
例如:
BackColor
2.Camel大小写
标识符的首字母小写,而每个后面连接的单词的首字母都大写。
例如:
backColor
3.大写
标识符中的所有字母都大写。
仅对于由两个或者更少字母组成的标识符使用该约定。
例如:
System.IO
System.Web.UI
可能还必须大写标识符以维持与现有非托管符号方案的兼容性,在该方案中所有大写字母经常用于枚举和常数值。
一般情况下,在使用它们的程序集之外这些字符应当是不可见的。
下表汇总了大写规则,并提供了不同类型的标识符的示例。
标识符
大小写
示例
类
Pascal
AppDomain
枚举类型
Pascal
ErrorLevel
枚举值
Pascal
FatalError
事件
Pascal
ValueChange
异常类
Pascal
WebException
注意 总是以Exception后缀结尾。
只读的静态字段
Pascal
RedValue
接口
Pascal
IDisposable
注意 总是以I前缀开始。
方法
Pascal
ToString
命名空间
Pascal
System.Drawing
参数
Camel
typeName
属性
Pascal
BackColor
受保护的实例字段
Camel
redValue
注意 很少使用。
属性优于使用受保护的实例字段。
公共实例字段
Pascal
RedValue
注意 很少使用。
属性优于使用公共实例字段。
2区分大小写
为了避免混淆和保证跨语言交互操作,请遵循有关区分大小写的使用的下列规则:
1.不要使用要求区分大小写的名称。
对于区分大小写和不区分大小写的语言,组件都必须完全可以使用。
不区分大小写的语言无法区分同一上下文中仅大小写不同的两个名称。
因此,在创建的组件或类中必须避免这种情况。
2.不要创建仅是名称大小写有区别的两个命名空间。
例如,不区分大小写的语言无法区分以下两个命名空间声明。
namespaceee.cummings
namespaceEe.Cummings
3.不要创建具有仅是大小写有区别的参数名称的函数。
下面的示例是不正确的
voidMyFunction(stringa,stringA)
4.不要创建具有仅是大小写有区别的类型名称的命名空间。
在下面的示例中,Pointp和POINTp是不适当的类型名称,原因是它们仅在大小写方面有区别
System.Windows.Forms.Pointp
System.Windows.Forms.POINTp
5.不要创建具有仅是大小写有区别的属性名称的类型。
在下面的示例中,intColor和intCOLOR是不适当的属性名称,原因是它们仅在大小写方面有区别。
intColor{get,set}
intCOLOR{get,set}
6.不要创建具有仅是大小写有区别的方法名称的类型。
在下面的示例中,calculate和Calculate是不适当的方法名称,原因是它们仅在大小写方面有区别。
voidcalculate()
voidCalculate()
3缩写
为了避免混淆和保证跨语言交互操作,请遵循有关区缩写的使用的下列规则:
1.不要将缩写或缩略形式用作标识符名称的组成部分。
例如,使用GetWindow,而不要使用GetWin。
2.不要使用计算机领域中未被普遍接受的缩写。
3.在适当的时候,使用众所周知的缩写替换冗长的词组名称。
例如,用UI作为UserInterface的缩写,用OLAP作为On-lineAnalyticalProcessing的缩写。
4.在使用缩写时,对于超过两个字符长度的缩写,请使用Pascal大小写或Camel大小写。
例如,使用HtmlButton或htmlButton。
但是,应当大写仅有两个字符的缩写,如,System.IO,而不是System.Io。
5.不要在标识符或参数名称中使用缩写。
如果必须使用缩写,对于由多于两个字符所组成的缩写请使用Camel大小写,虽然这和单词的标准缩写相冲突。
4措词
避免使用与常用的.NETFramework命名空间重复的类名称;避免使用和关键字冲突的标识符。
5避免类型名称混淆
使用描述类型的含义的名称,而不是描述类型的名称。
如果参数除了其类型之外没有任何语义含义,那么在这种罕见的情况下请使用一般性名称。
例如,支持将各种数据类型写入到流中的类可以有以下方法
voidWrite(doublevalue);
voidWrite(floatvalue);
voidWrite(longvalue);
voidWrite(intvalue);
voidWrite(shortvalue);
不要创建语言特定的方法名称,如下面的示例所示
voidWrite(doubledoubleValue);
voidWrite(floatfloatValue);
voidWrite(longlongValue);
voidWrite(intintValue);
voidWrite(shortshortValue);
如果有必要为每个基本数据类型创建唯一命名的方法,那么在这种极为罕见的情况下请使用通用类型名称。
下表列出基本数据类型名称和它们的通用替换。
C#类型名称
VisualBasic类型名称
JScript类型名称
VisualC++类型名称
Ilasm.exe表示形式
通用类型名称
Sbyte
Sbyte
SByte
char
int8
SByte
Byte
Byte
Byte
unsignedchar
unsignedint8
Byte
Short
Short
Short
short
int16
Int16
Ushort
UInt16
Ushort
unsignedshort
unsignedint16
UInt16
Int
Integer
Int
int
int32
Int32
Uint
UInt32
Uint
unsignedint
unsignedint32
UInt32
Long
Long
Long
__int64
int64
Int64
Ulong
UInt64
Ulong
unsigned__int64
unsignedint64
UInt64
Float
Single
Float
float
float32
Single
Double
Double
Double
double
float64
Double
Bool
Boolean
boolean
bool
bool
Boolean
Char
Char
Char
wchar_t
char
Char
String
String
String
String
string
String
Object
Object
Object
Object
object
Object
例如,支持将从流读取各种数据类型的类可以有以下方法。
doubleReadDouble();
floatReadSingle();
longReadInt64();
intReadInt32();
shortReadInt16();
上面的示例优先于下面的语言特定的替代方法。
doubleReadDouble();
floatReadFloat();
longReadLong();
intReadInt();
shortReadShort();
6类命名指南
以下规则概述命名类的指南:
1.使用名词或名词短语命名类。
2.使用Pascal大小写。
3.少用缩写。
4.不要使用类型前缀,如在类名称上对类使用C前缀。
例如,使用类名称FileStream,而不是CFileStream。
5.不要使用下划线字符(_)。
6.有时候需要提供以字母I开始的类名称,虽然该类不是接口。
只要I是作为类名称组成部分的整个单词的第一个字母,这便是适当的。
例如,类名称IdentityStore就是适当的。
7.在适当的地方,使用复合单词命名派生的类。
派生类名称的第二个部分应当是基类的名称。
例如,ApplicationException对于从名为Exception的类派生的类是适当的名称,原因是ApplicationException是一种Exception。
请在应用该规则时进行合理的判断。
例如,Button对于从Control派生的类是适当的名称。
尽管按钮是一种控件,但是将Control作为类名称的一部分将使名称不必要地加长。
下面是正确命名的类的示例
publicclassFileStream
publicclassButton
publicclassString
7方法命名指南
以下规则概述方法的命名指南:
1.使用动词或动词短语命名方法。
2.使用Pascal大小写。
以下是正确命名的方法的实例
RemoveAll()
GetCharArray()
Invoke()
8字段使用指南
以下规则概述字段的使用指南:
1.不要使用是public或protected的实例字段。
如果避免将字段直接公开给开发人员,可以更轻松地对类进行版本控制,原因是在维护二进制兼容性时字段不能被更改为属性。
考虑为字段提供get和set属性访问器,而不是使它们成为公共的。
get和set属性访问器中可执行代码的存在使得可以进行后续改进,如在使用属性或者得到属性更改通知时根据需要创建对象。
2.使用const关键字声明不会更改的常量字段。
语言编译器直接将const字段的值保存在调用代码中。
常量字段的名称通常全部大写,例如:
privateconstStringTRACING_TRACEFILE_DEFAULT="ApplicationTrace.txt";
3.对预定义对象实例使用公共静态只读字段。
如果存在对象的预定义实例,则将它们声明为对象本身的公共静态只读字段。
使用Pascal大小写,原因是字段是公共的。
下面的代码示例阐释公共静态只读字段的正确使用。
publicstaticreadonlyColorRed=newColor(0x0000FF);
publicstaticreadonlyColorGreen=newColor(0x00FF00);
4.拼写出字段名称中使用的所有单词。
仅在开发人员一般都能理解时使用缩写。
5.不要对字段名使用匈牙利语表示法。
好的名称描述语义,而非类型。
6.不要对字段名或静态字段名应用前缀。
具体说来,不要对字段名称应用前缀来区分静态和非静态字段。
例如,应用g_或s_前缀是不正确的
9属性命名指南
以下规则概述属性的命名指南:
1.使用名词或名词短语命名属性。
2.使用Pascal大小写。
3.不要使用匈牙利语表示法。
4.考虑用与属性的基础类型相同的名称创建属性。
10接口命名指南
以下规则概述接口的命名指南:
1.用名词或名词短语,或者描述行为的形容词命名接口。
例如,接口名称IComponent使用描述性名词。
接口名称ICustomAttributeProvider使用名词短语。
名称IPersistable使用形容词。
2.使用Pascal大小写。
3.少用缩写。
4.给接口名称加上字母I前缀,以指示该类型为接口。
5.在定义类/接口对(其中类是接口的标准实现)时使用相似的名称。
两个名称的区别应该只是接口名称上有字母I前缀。
6.不要使用下划线字符(_)。
11事件命名指南
以下规则概述事件的命名指南:
1.使用Pascal大小写。
2.不要使用匈牙利语表示法。
3.对事件处理程序名称使用EventHandler后缀。
4.指定两个名为sender和e的参数。
sender参数表示引发事件的对象。
sender参数始终是object类型的,即使在可以使用更为特定的类型时也如此。
与事件相关联的状态封装在名为e的事件类的实例中。
对e参数类型使用适当而特定的事件类。
5.用EventArgs后缀命名事件参数类。
6.考虑用动词命名事件。
例如,命名正确的事件名称包括Clicked、Painting和DroppedDown。
7.使用动名词(动词的“ing”形式)创建表示事件前的概念的事件名称,用过去式表示事件后。
例如,可以取消的Close事件应当具有Closing事件和Closed事件。
不要使用BeforeXxx/AfterXxx命名模式。
8.不要在类型的事件声明上使用前缀或者后缀。
例如,使用Close,而不要使用OnClose。
9.通常情况下,对于可以在派生类中重写的事件,应在类型上提供一个受保护的方法(称为OnXxx)。
此方法只应具有事件参数e,因为发送方总是类型的实例。
12枚举类型命名指南
枚举(Enum)值类型从Enum类继承。
以下规则概述枚举的命名指南:
∙对于Enum类型和值名称使用Pascal大小写。
∙少用缩写。
∙不要在Enum类型名称上使用Enum后缀。
∙对大多数Enum类型使用单数名称,但是对作为位域的Enum类型使用复数名称。
∙总是将FlagsAttribute添加到位域Enum类型。
13参数命名指南
必须仔细遵守这些参数的命名指南,这非常重要,因为提供上下文相关帮助和类浏览功能的可视化设计工具会在设计器中对用户显示方法参数名称。
以下规则概述参数的命名指南:
1.对参数名称使用Camel大小写。
2.使用描述性参数名称。
参数名称应当具有足够的描述性,以便参数的名称及其类型可用于在大多数情况下确定它的含义。
例如,提供上下文相关帮助的可视化设计工具会按开发人员键入的实际内容显示方法参数。
在这种情况下,方法参数名称的表述必须清楚明白,开发人员才能提供正确的参数。
3.使用描述参数的含义的名称,而不要使用描述参数的类型的名称。
开发工具将提供有关参数的类型的有意义的信息。
因此,通过描述意义,可以更好地使用参数的名称。
少用基于类型的参数名称,仅在适合使用它们的地方使用它们。
4.不要使用保留的参数。
保留的参数是专用参数,如果需要,可以在未来的版本中公开它们。
相反,如果在类库的未来版本中需要更多的数据,请为方法添加新的重载。
5.不要给参数名称加匈牙利语类型表示法的前缀。
14数据库表的命名以及字段的命名:
按照T字母的组合命名方式T_User
15数据库存储过程的命名:
以p_**_开头,其中**为模块缩写,后面名称能表明该存储过程含义
16数据库View的命名:
以v_**_,其中**为模块缩写,后面名称能表明View含义
17数据库Trigger的命名:
以tg_**_,其中**为模块缩写,后面名称能表明该Trigger含义
18.程序文件的命名:
按照命名方式,“注册”程序文件用reg.aspx,查询用query.aspx,列表用list.aspx,修改用modify.aspx等
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c# 编程 典范 榜样 数据库 命名
![提示](https://static.bdocx.com/images/bang_tan.gif)