C#项目代码规范

简介: 前言    小菜就是小菜,几个人搞出来的项目,让公司大牛稍微看了下,最后送出了惨不忍睹四个字。命名各种各样,五花八门,大写英文、小写英文、大写拼音、小写拼音、英文和拼音组合、字母和特殊字符(下划线等)组合。

前言

   小菜就是小菜,几个人搞出来的项目,让公司大牛稍微看了下,最后送出了惨不忍睹四个字。命名各种各样,五花八门,大写英文、小写英文、大写拼音、小写拼音、英文和拼音组合、字母和特殊字符(下划线等)组合。这样的项目代码要是让人来维护或者添加功能、查找bug会头痛欲裂。也没办法谁叫咱们是小菜呢?而且程序员最头疼的事:http://kb.cnblogs.com/page/192017/这篇知识博文里,最终的结果居然是命名。所以……

  于是结合现有项目,通过博客园查看各种博客文章,进行了一下总结。当然这样做肯定是有不少好处的。

  1.方便代码的交流和维护。

  2.不影响编码的效率,不与大众习惯冲突。

  3.使代码更美观、阅读更方便。

  4.使代码的逻辑更清晰、更易于理解。

在C#中通常使用的两种编码方式如下

  Camel(驼峰式): 大小写形式-除了第一个单词,所有单词第一个字母大写,其他字母小写。
  Pascal(帕斯卡): 大小写形式-所有单词第一个字母大写,其他字母小写。

本文的C#代码规范主要参考的是大神的规范:http://www.cnblogs.com/JimmyZhang/archive/2013/06/05/3118936.html,当然还有其他的,在此就不一一进行列举了。

C#代码规范

1、 类型(类、结构、委托、接口)、字段、属性、方法、事件的命名

  优先考虑使用英文(尽量使用英文),如果实在没有合适的英文进行描述,可以使用拼音,使用中文是不符合要求的。

 

2、不使用缩写

  所有类型、字段、属性、方法、事件尽量不使用缩写,包括大家熟知的缩写,例如msg。

 

3、不使用单个字母的变量

  不使用单个字母的变量, 像 i、m、n,使用index等来替换,用于循环迭代的变量除外。

 

 

4、用Tab作为缩进,并设置缩进大小为4

 

5、 注释

类型、属性、事件、方法、方法参数,根据需要添加注释。

如果类型、属性、事件、方法、方法参数的名称已经是自解释了,不需要加注释;

否则需要添加注释。

 

6、类型名称和源文件名称一致

当类型命名为Product时,其源文件命名只能是Product.cs。

 

7、所有命名空间、类型名称使用Pascal风格

 

8、本地变量、方法参数名使用Camel风格(不使用下划线)

红色标记的为使用Camel风格的变量或者方法参数

 

9、在一个类中,各个方法需用一空行(最好是一个空行)

 

10、避免使用大文件。如果一个文件里的代码超过300-400行,必须考虑将代码分开到不同的类中。同时避免写太长的方法,如果一个方法代码过长(暂时没有明确指出方法的行数),应该考虑将其分解为不同的方法

 

11、一个方法只完成一个任务。不要把多个任务组合到一个方法中,即使那些任务非常小

 

12、调用类型成员内部其他成员,需加this,调用父类成员需加base

 

13、不在代码中使用具体的路径和驱动器名。 使用相对路径,并使路径可复用

 

14、不要“捕捉了异常却什么也不做“。如果隐藏了一个异常,你将永远不知道异常到底发生了没有

 

15、如果if语句块的内容只有一行,可以不加花括号,并且最好和if语句位于同一行

 

16、类型内部的私有字段和受保护字段,使用Camel风格命名,但加“_”前缀

 

 

17、类型成员的排列顺序

类型成员的排列顺序自上而下依次为:

字段:私有字段、受保护字段

属性:私有属性、受保护属性、公有属性

事件:私有事件、受保护事件、公有事件

构造函数:参数数量最多的构造函数,参数数量中等的构造函数,参数数量最少的构造函数

方法:重载方法的排列顺序与构造函数相同,从参数数量最多往下至参数最少

 

18、委托和事件的命名

委托以EventHandler作为后缀命名,例如 SalesOutEventHandler。

事件以其对应的委托类型,去掉EventHandler后缀,并加上On前缀构成。

示例代码如下:

 

19、返回bool类型的方法、属性的命名

如果方法返回的类型是bool类型,则其前缀为Is,例如:IsHidden。

如果某个属性的类型为bool类型,则其前缀为Can,例如:CanHidden。

 

20、常见集合后缀类型命名

凡符合下表所列的集合类型,应添加相应的后缀。

 

21、常见字段、属性命名

字段、属性种类比较繁杂,因此仅列出最常用的几项

 

总结

本文的规范,将会在接下来的新项目中进行参考使用,使用过程中遇到的问题或者意见,将会反馈到本文,也恭请各位客官前来参阅,共同优化。

目录
相关文章
|
1月前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
7月前
|
C#
C#之四十六 迷你贪吃蛇项目
C#之四十六 迷你贪吃蛇项目
53 0
|
1月前
|
传感器 数据采集 大数据
C#/BS手麻系统源码 手术麻醉管理系统源码 商业项目源码
手麻系统从麻醉医生实际工作环境和流程需求方面设计,与HIS,LIS,PACS,EMR无缝连接,方便查看患者的信息;实现术前、术中、术后手术麻醉信息全记录;减少麻醉医师在手术中填写麻醉记录单时间,证手术麻醉相关信息的准确性,有效降低医护人员的术中书写医疗文书的压力,使得麻醉医生在术中能够更加集中精力在病人的麻醉操作上,提升手术质量
19 2
|
23天前
|
安全 算法 测试技术
C#编程实战:项目案例分析
【4月更文挑战第20天】本文以电子商务系统为例,探讨C#在实际项目中的应用。通过面向对象编程实现组件抽象和封装,确保代码的可维护性和可扩展性;利用安全性特性保护用户数据;借助数据库操作处理商品信息;通过逻辑控制和算法处理订单;调试工具加速问题解决,展现C#的优势:面向对象、数据库交互、数据安全和开发效率。C#在实际编程中展现出广泛前景。
|
3月前
|
算法 BI API
C#/.NET/.NET Core优秀项目和框架2024年1月简报
C#/.NET/.NET Core优秀项目和框架2024年1月简报
|
4月前
|
运维 数据挖掘 C#
C#大型LIS检验信息系统项目源码
LIS系统能实现临床检验信息化,检验科信息管理自动化。其主要功能是将检验科的实验仪器传出的检验数据经数据分析后,自动生成打印报告,通过网络存储在数据库中,使医生能够通过医生工作站方便、及时地看到患者的检验结果。
35 0
|
9月前
|
开发框架 .NET C#
C#/.NET/.NET Core优秀项目和框架精选(坑已挖,欢迎大家踊跃提交PR或者Issues中留言)
C#/.NET/.NET Core优秀项目和框架精选(坑已挖,欢迎大家踊跃提交PR或者Issues中留言)
149 1
|
4月前
|
数据采集 开发框架 JavaScript
C#/.NET/.NET Core优秀项目和框架2023年12月简报
C#/.NET/.NET Core优秀项目和框架2023年12月简报
|
5月前
|
Rust 算法 C#
C#/.NET/.NET Core优秀项目和框架2023年11月简报
C#/.NET/.NET Core优秀项目和框架2023年11月简报
|
7月前
|
开发框架 API C#
C#/.NET/.NET Core优秀项目和框架精选(23年10月更新,欢迎大家踊跃提交PR一起完善让优秀的项目和框架不被埋没)
C#/.NET/.NET Core优秀项目和框架精选(23年10月更新,欢迎大家踊跃提交PR一起完善让优秀的项目和框架不被埋没)
161 0