net编程规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Net编程规范
第一章 概述
1.1什么是编程规范
所谓编程规范即是千百万有经验的程序员经历长期教训后,极少数的一些人通过总结和反思而养成的信条和习惯。这一规范可让你:高效率地编程、编写高质量的代码、获得更高的回报。
1.2质量标准
1)空间,如果不是特殊要求,程序应当尽可能少用空间,但对于某些需要反复使用的
数据内容,特别是系统的字典数据,可以在系统中进行缓存,以提高性能。在某些
要求性能的情况下,可以考虑以空间换取时间。
2)速度,程序应当是能在最优化的即最快的速度运行。一般有两个注意点,一:循环
体内的代码应针对效率进行优化;二:反复使用的数据应缓存在内存中。
3)健壮性,不会因任何误操作(包括非法数值)使程序崩溃。
4)安全性,对于用户数据,或网络程序,应当保证其数据或网络的安全。
5)可测试性,提交的产品或模块应可编译、可执行,能够进行测试。
6)可维护性,详细的注解,且程序应当具有面向对象的构件及模快。并且遵守对象与
变量的命名规范。
7)易用性,简单,易操作,易使用。
8)可复用性,构件能用于其它产品中。
1.3为什么要进行编码约定?
1)使用统一编码约定集的主要原因,是使应用程序的结构和编码风格标准化,以便于
阅读和理解编码。好的编码约定可使源代码严谨、可读性强且意义清楚。
2)编码约定的目的是使程序易于阅读和理解,而不是用过份的约束和绝对的限制来束
缚程序员本身的创造性,故编码约定不能过于繁杂。
3)本文的约定中没列出每一个可能的对象或控件,根据工程及机构的特殊要求,可以
扩充这些准则,以包含附加的元素。
1.4 说明
本规范参考了大量前人的成果.但又不局限于此。本规范没有完全按照.NET 推荐的命名规则而来,而是结合了自身的实际和许多Java规范中很多优秀的经验而制定。
第二章 环境设置规范
2.1开发环境
Microsoft Visual 2005 或2008
2.2工程设定
1)不同.net项目名称的前8位不能相同
2)修改AssemblyInfo.cs 版本号,将 assembly: AssemblyVersion("1.0.*")中的
1.0.*修改成具体的版本,目前一般改成1.0.0,随着新版本的升级,各个工程的
AssemblyInfo.cs中的版本号需要与整个平台或项目的版本号保持一致。
第三章 编码规范
3.1命名规范
首先,命名总的原则是名称应该说明“什么”而不是“如何”,命名要足够长以同其它变量相分别,简要描述其意义,但要足够短以避免太长.以下是几个方面的命名规范.
总原则,虽然,C#的类,方法,变量都会区分大小写,但是不得用大小写来区分各种实体。
1、不要创建仅是名称大小写有区别的两个命名空间。
例如,
namespace ee.cummings;
namespace Ee.Cummings;
2、不要创建具有仅是大小写有区别的参数名称的函数。
下面的示例是不正确的。
void MyFunction(string a, string A)
3、不要创建具有仅是大小写有区别的类型名称的命名空间。
在下面的示例中,Point p 和 POINT p 是不适当的类型名称,原因是它们仅在大小写方面有区别。
System.Windows.Forms.Point p
System.Windows.Forms.POINT p
4、不要创建具有仅是大小写有区别的属性名称的类型。
在下面的示例中,int Color 和 int COLOR 是不适当的属性名称,原因是它们仅在大小写方面有区别。
int Color {get, set}
int COLOR {get, set}
5、不要创建具有仅是大小写有区别的方法名称的类型。
在下面的示例中,calculate 和 Calculate 是不适当的方法名称,原因是它们仅在大小写方面有区别。
void calculate()
void Calculate()
3.1.1工程的命名与属性设置
工程命名一律使用前缀”Fs”,紧随其后的单词首字母大写,如FsConfigApp等。
工程对应的程序集名称应与工程名称保持一致
工程的默认命名空间设置成空
3.1.2包命名(命名空间命名)
与.NET推荐的规范中不同,本规范要求命名空间的命名全用小写,并且最好每个段只用一个单词。命名空间的第一个单词为组织名,如FORESTAR.第二个单词应该是工程相关的描述。如app表示应用程序,core表求核心。两个例子如下所示。
FsCore工程
│ └─core
│ ├─db
│ ├─security
│ └─util
fsConf工程
│ └─config
│ ├─dict
│ ├─flow
│ ├─layercatalog
│ ├─log
│ ├─orguser
│ ├─query
│ ├─role
│ └─stat
另外,如果命名空间有对应的子目录的话,该子目录的名称应该与命名空间严格保持一致。
3.1.3类命名
1)名字应该能够标识事物的特性。
2)名字尽量不使用缩写,除非它是众所周知的,如DB。
3)名字可以有两个或三个单词组成,但通常不应多于三个。
4)在名字中,所有单词第一个字母大写。 例如UserCatalog.
5)使用名词或名词短语命名类。
6)不要使用下划线字符 (_)。
public class DBHelper{}
public class BookMark{}
7)特别规定:
窗体类以Form开头,窗体变量以frm开头。
用户自定义控件以UI开头,其变量名以ui开头。