C# 编写规范
一、两种命名风格:
1.Pascal风格 大驼峰命名法
包含一个到多个单词,每个单词首字母大写,其余字母均小写。例如:HelloWorld、SetName等等。
2.Camel风格 小驼峰命名法
包含一个到多个单词,第一个单词首字母小写,其余单词首字母大写。例如:name、productId等等。
二、标识符的大小写规则
1.参数和变量的命名使用Camel风格。
2.除参数和变量外,所有命名空间、类、函数、接口、属性等名称的命名,使用Pascal风格。
三、命名约定
1.使用易读的英文名称。
2.下划线。其他非字母数字字符不要用。
3.避免命名冲突,与关键字、命名空间、类、函数、接口、属性等名称的冲突。
4.不要使用缩写单词,除非它已被广泛接受、妇孺皆知。
四、命名空间命名
1.命名空间采用Pascal风格,取名一般为 人名.项目名称 ,例如:Zhangsan.ProjectName\Zhangsan.Office 。
2.需要用复数时,用复数。例如:System.Collections 。
3.需要缩写时,不需要加复数,例如:System.IO 。
五、类、结构、接口 的命名
1.类、结构、接口 使用Pascal风格,使用名词名词短语为类、接口和值类型命名。
2.接口以大写字母I为前缀,例如:Icomponent。
3.派生类的末尾带上基类的名称。
六、逻辑类命名
1.按照Pascal风格,使用名词或名词短语命名,并加上后缀Logic 。
七、文件夹命名
1.文件夹以功能模块的名称按照Pascal风格命名。比如后端管理功能及权限相关功能,全部放到System文件夹里。
八、代码编码规范
1.缩进,【Tab】键;回退缩进,【shift】+【Tab】。缩进八个置位符。
2.注释须和代码对齐。多使用#regedit 和 #endregion 代码块。
3.代码中垂直对齐左括号和右括号。
4.适当增加空行,来增加代码的可读性。
5.避免使用大文件。代码文件多大,可分多个文件写。
6.避免写冗长的方法。
7.在运算符之前和之后使用空格,增加代码的可读性。
8.出密码外,一般可供用户输入的字段值,必须忽略前后空白(不包含密码)。
9.在对字段值进行有效性验证时,对提交进数据库的内容必须进行SQL注入过滤与XSS过滤。
10.一个方法只完成一个任务。不要把多个任务组合到一个方法中,即使那些任务非常小。
11.避免使用很多成员变量,声明局部变量,并传递给方法。
12.不要在方法间共享成员变量,如果在几个方法间共享一个成员变量,那就很难知道是哪个方法在什么时候修改了它的值。
13.不在代码中使用具体路径和驱动器名,使用相对路径,并使路径可编程。永远别设想你的代码是在“C:”盘运行。你不会知道,一些用户在网络上或“Z:”盘运行程序。
14.应用程序启动时进行“自检”并确保所需文件和附件在指定位置。如果需要的配置文件找不到,应用程序需自己创建使用默认值的一份。如果在配置文件中发现错误值,应用程序要抛出错误,给出提示消息告诉用户正确值。
15.出现任何问题给用户一个有好的提示。错误消息能帮助用户解决问题。永远不要写一些笼统的提醒,如“应用程序出错”、“发现一个错误”等,而应写具体的错误提醒,如“数据库更新失败,请确保登陆ID和密码正确”。显示错误消息时,除了说哪里错了,还应提示用户如何解决问题。
16.错误处理和异常事件。
16.1.不要捕捉了异常却什么也不做。如果隐藏一个异常,你将永远不知道异常到底发生了没有。
16.2.发生异常时,给用户提示友好的消息,但要精确记录错误的所有可能细节,包括发生的时间和相关方法、类名。
16.3.别写太大的try-catch模块。如果需要,为每个执行的任务编写单独的try-catch模块。这将很容易找出哪一段代码产生异常,并给用户发出特定的错误消息。
16.4.如果应用程序需要,可以编写自己的异常类。自定义异常类不应从基类SystemException派生,而要继承于IApplicationException。