会员
周边
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
十年
::
首页
::
新随笔
::
联系
::
订阅
::
管理
::
公告
C#程序编码规范(轉)
C#程序编码规范
1
. 目的
为了保证企业编写出的程序都符合相同的规范,保证一致性、统一性而建立的程序编码规范。
2
. 范围
适用于企业所有基于.NET平台的软件开发工作。
3
. 规范内容
3.1
. 代码格式
u 所有的缩进为4个空格,使用VS.NET的默认设置。
u 在代码中垂直对齐左括号和右括号。
if
(x
==
0
)
{
Response.Write(
"
用户编号必须输入!
"
);
}
不允许以下情况:
if
(x
==
0
)
{
Response.Write(
"
用户编号必须输入!
"
);
}
或者:
if
(x
==
0
)
{ Response.Write(
"
用户编号必须输入!
"
);}
u 为了防止在阅读代码时不得不滚动源代码编辑器,每行代码或注释在1024
*
800的显示频率下不得超过一显示屏
u 当一行被分为几行时,通过将串联运算符放在每一行的末尾而不是开头,清楚地表示没有后面的行是不完整的。
u 每一行上放置的语句避免超过一条。
u 在大多数运算符之前和之后使用空格,这样做时不会改变代码的意图却可以使代码容易阅读。
例:
int
j
=
i
+
k;
而不应写为
int
j
=
i
+
k;
u 将大的复杂代码节分为较小的、易于理解的模块。
u 编写 SQL 语句时,对于关键字使用全部大写,对于数据库元素(如表、列和视图)使用大小写混合。
u 将每个主要的 SQL 子句放在不同的行上,这样更容易阅读和编辑语句,例如: SELECT FirstName, LastName
FROM Customers
WHERE State
=
'
WA
'
3.2
. 注释(Comment)规范
注释规范包括:模块(类)注释规范、类的属性、方法注释规范、代码间注释
3.2
.
1
. 模块(类)注释规范
模块开始必须以以下形式书写模块注释:
/**/
///
<summary>
///
模块编号:
<模块编号,可以引用系统设计中的模块编号>
///
作用:
<对此类的描述,可以引用系统设计中的描述>
///
作者:作者中文名
///
编写日期:
<模块创建日期,格式:YYYY-MM-DD>
///
</summary>
如果模块有修改,则每次修改必须添加以下注释:
/**/
///
<summary>
///
Log编号:
<Log编号,从1开始一次增加>
///
修改描述:
<对此修改的描述>
///
作者:修改者中文名
///
修改日期:
<模块修改日期,格式:YYYY-MM-DD>
///
</summary>
3.2
.
2
. 类属性注释规范
在类的属性必须以以下格式编写属性注释:
/**/
///
<summary>
///
属性说明
///
</summary>
3.2
.
3
. 方法注释规范
在类的方法声明前必须以以下格式编写注释
/**/
///
<summary>
///
说明:
<对该方法的说明>
///
</summary>
///
<param name="<参数名称>
">
<参数说明></param>
///
<returns>
///
<对方法返回值的说明,该说明必须明确说明返回的值代表什么含义>
///
</returns>
3.2
.
4
. 代码间注释规范
代码间注释分为单行注释和多行注释:
单行注释:
//
<单行注释>
多行注释:
/**/
/*
多行注释1
多行注释2
多行注释3
*/
代码中遇到语句块时必须添加注释(
if
,
for
,
foreach
,……),添加的注释必须能够说明此语句块的作用和实现手段(所用算法等等)。
3.3
. 变量(Variable)命名规范
3.3
.
1
. 程序文件(
*
.cs)中的变量命名规则
程序中变量名称
=
变量的前缀
+
代表变量含意的英文单词或单词缩写。
1
. 类模块级的变量请用“m_”作前缀
public
class
hello
{
private
string
m_Name;
private
DateTime m_Date;
}
2
. 类的属性所对应的变量,采用属性名前加“m_”前缀的形式
public
class
hello
{
private
string
m_Name;
public
string
Name
{
get
{
return
m_Name;
}
}
}
3
. 过程级的变量不使用前缀
public
class
hello
{
void
say()
{
string
SayWord;
}
}
4
. 过程的参数使用“p_”作为参数
public
class
hello
{
void
say(
string
p_SayWord)
{
}
}
补充说明:
针对异常捕获过程中的Exception变量命名,在没有冲突的情况下,统一命名为e;
如果有冲突的情况下,可以重复e,比如:ee。
Try
{
//
your code
try
{
//
code
}
catch
(Exception ee)
{
//
your code
}
}
catch
(Exception e)
{
//
your code
}
补充:如果捕获异常不需要作任何处理,则不需要定义Exception实例
例:
try
{
//
your code
}
catch
( Exception )
{
}
5
. 鉴于大多数名称都是通过连接若干单词构造的,请使用大小写混合的格式以简化它们的阅读。每个单词的第一个字母都是大写.
6
. 即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如 i 或 j。
7
. 在变量名中使用互补对,如 min
/
max、begin
/
end 和 open
/
close。
8
. 不要使用原义数字或原义字符串,如 For i
=
1
To
7
。而是使用命名常数,如 For i
=
1
To NUM_DAYS_IN_WEEK 以便于维护和理解。
3.3
.
2
. 控件命名规则
控件命名
=
Web控件缩写前缀
+
“_”
+
变量名
控件
缩写
Label
lbl
TextBox
txt
CheckBox
chk
Button
cmd
ListBox
lst
DropDownList
drp
等等
3.4
. 常量命名规范
常量名也应当有一定的意义,格式为 NOUN 或 NOUN_VERB。常量名均为大写,字之间用下划线分隔。
例:
private
const
bool
WEB_ENABLEPAGECACHE_DEFAULT
=
true
;
private
const
int
WEB_PAGECACHEEXPIRESINSECONDS_DEFAULT
=
3600
;
private
const
bool
WEB_ENABLESSL_DEFAULT
=
false
;
注:
变量名和常量名最多可以包含
255
个字符,但是,超过
25
到
30
个字符的名称比较笨拙。此外,要想取一个有实际意义的名称,清楚地表达变量或常量的用途,
25
或
30
个字符应当足够了。
3.5
. 类(Class)命名规范
1
. 名字应该能够标识事物的特性。
2
. 名字尽量不使用缩写,除非它是众所周知的。
3
. 名字可以有两个或三个单词组成,但通常不应多于三个。
4
. 在名字中,所有单词第一个字母大写。
例如 IsSuperUser,包含ID的,ID全部大写,如CustomerID。
5
. 使用名词或名词短语命名类。
6
. 少用缩写。
7
. 不要使用下划线字符 (_)。
例:
public
class
FileStream
public
class
Button
public
class
String
3.6
. 接口(Interface)命名规范
和类命名规范相同,唯一区别是 接口在名字前加上“I”前缀
例:
interface
IDBCommand;
interface
IButton;
3.7
. 方法(Method)命名规范
和类命名规范相同。
3.8
. 命名空间(NameSpace)命名规范
和类命名规范相同。
posted on
2005-01-28 17:07
留不住的时光
阅读(
285
) 评论(
0
)
收藏
举报
刷新页面
返回顶部