C#代码开发规范
文件状态:
[√] 草稿
[  ] 正式
[  ] 修改
文件标识:
当前版本:
1.1
作    者:
Empty
最后更新:
2014-04-07
版本记录
怎么写代码做软件
日期
版本号
作者
说明
2014-4-2
1.0
Empty
创建
2014-4-7
1.1
Empty
添加前言、注释规范与编码规范
1.前言
1.1编写目的
为了保证编写出的程序都符合相同的规范,保证一致性、统一性而建立的程序编码规范。
编码规范对于程序员而言尤为重要,有以下几个原因:
1) 一个软件的生命周期中,80%的花费在于维护。
2) 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护。
3) 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码 。
每个软件开发人员都必须遵守统一的编码规范。
1.2适用范围
本规范适用于《从零开始编写自己的C# 框架》的开发。
1.3基本要求
尽量使代码简单直白。
2.命名规范
2.1字母大小写约定
2.1.1说明
表达清晰的命名规范是程序规划的核心,如果规范的命名能清晰的表达出相应的功能,就可以让人“望文知意”,提高开发效率和系统的可维护性。反之,如果命名不能表达其含义,例如“aaa”、“bbb ()”,那么将适得其反。
2.1.2Pascal风格
包含一到多个单词,每一个单词第一个字母大写,其余字母均小写。例如:HelloWorld、SetName等。
2.1.3Camel风格
包含一到多个单词,第一个单词首字母小写,其余单词首字母大写。例如:name、productId等。
2.2标识符的大小写规则
1)除了参数与变量外,所有命名空间名称、类函数、接口、属性等名称的命名,使用 Pascal 风格
2)参数与变量的命名,使用Camel风格。
2.3通用命名约定
约定的是如何选择最适当的名称,这些准则适用于所有标识符命名。
2.3.1选择名称
1)请选择易读的英文名称
例如,英文 Order的意思为规则、次序、订购等,如果用在排序列中就不是很合适,用来表示订单则更具可读性。
可读性比详细描述更重要,比如表示坐标名称ScreenX就比ScreenHorizontally 更具可读性。
2)除下划线外,不要使用连字符或任何其他非字母数字字符
在数据库表字段名称设计时,与其他表字段有关联时,适当的使用表名+下横线+字段名,可以更清晰的表现出该字段与关联表对应字段的关系。
比如产品分类表ProductClass有字段Id与Name,那么产品表绑定这两个字段的名称可命名为ProductClass_Id与ProductClass_Name,这样在查看产品表时就可以清晰的知道这两个字段与分类表的关系。
3)避免使用与常用编程语言的关键字冲突的标识符
4)变量和方法参数使用Camel 风格
例如:
string productName = "";
int number=0;
string sqlString="";
double averageScore=0.0;
Users users=new Users();
Users model=new Users();
Users userModel=new Users();
const string const_String = "";(不同公司有不同的约定,具体根据自己公司情况设置而定)
    Private string GetProductName(int id)
{
        return "";
}
5)不要使用成员属性作为成员变量的前缀(其他变量命名也一样)
例如: 不要像Users m_users;这样定义成员变量,可以使用第4点的设置。
2.3.2字母缩写词
1)通常,不应使用缩写
2)除非这种缩写已广泛接受,又或者团队当中大家都认可一种缩写
例如,使用 OnButtonClick,如果团队中普遍认可OnBtnClick这种写法也是可以的。
2.4命名空间命名
命名空间命名采用Pascal风格,取名的一般规则如下。
CompanyName. ProjectName (公司名称.项目名称)
例如:
Microsoft.Office
需要用复数时,请使用复数。
例如,使用System.Collections而不是System.Collection。
需要缩写时,不需要加复数。
例如:使用System.IO而不是System.IOs。
2.5类、结构和接口命名
1)按照 Pascal 大小写格式,使用名词或名词短语为类、接口和值类型命名
2)接口命名以字母 I 为前缀
例如:IComponent
3)派生类的末尾使用基类名称
例如,从 Stream 继承的 Framework 类型以 Stream 结尾,从 Exception 继承的类型以 Exception 结尾。