c# 程序编码规范
来源:互联网 发布:excel引用重复数据 编辑:程序博客网 时间:2024/05/05 11:08
程序编码规则
驼峰式 Camel 命名法
当变量名和函数名称是由二个或多个单词链接在一起的时候,第一个单词以小写字母开头,其他单词以大写字母开头。如:firstName,lastName
帕斯卡Pascal命名法
当变量名和函数名称是由二个或多个单词链接在一起的时候,每个单词都以大写字母开头
大小写与命名
要采用大小写混合,提高名字的可读性
1.所有变量都用 驼峰式Camel 大小写形式。如:firstName,lastName
2.要使用可以准确说明变量/字段/类的完整的英文描述符
3.不用单个字母的变量,循环迭代的变量例外
4.变量名中不使用下划线
大小写对照表
标识符
大小写
示例
命名空间
Pascal
namespace Com.Techstar.ProductionCenter
类型
Pascal
public classDevsList
接口
Pascal
public interface ITableModel
方法
Pascal
public void UpdateData()
属性
Pascal
Public int Length{…}
事件
Pascal
public event EventHandler Changed;
私有字段
Camel
private string fieldName;
非私有字段
Pascal
public string FieldName;
枚举值
Pascal
FileMode{Append}
参数
Camel
public void UpdateData(string fieldName)
局部变量
Camel
string fieldName;
类和接口命名
1. 类的名字要用名词,避免使用单词的缩写,除非它的缩写已经广为人知,如HTTP。
2. 接口的名字要以字母I开头
命名空间命名
好处:可避免类引用时的冲突和混淆
1.命名空间和目录结构相同
方法命名
1.第一个单词一般是动词
2.如果方法返回一个成员变量的值,方法名一般为Get+成员变量名,如若返回的值是bool变量,一般以Is作为前缀,另外,如果必要,考虑用属性来替代方法
3. 如果方法修改一个成员变量的值,方法名一般为:Set +成员变量名,同上,如果必
要,考虑用属性来替代方法。
变量命名
按照使用范围来分,我们代码中的变量的基本上有以下几种类型:
a.类的公有变量;
b.类的私有变量(受保护同公有);
c.方法的参数变量;
d.方法内部使用的局部变量。
这些变量的命名规则基本相同,见标识符大小写对照表。:
Tab
用Tab作为缩进,并设置缩进大小为4
要使一个代码块内的代码都统一缩进一个Tab长度。
空行
在一个类中,各个方法需用一空行(最好是一个空行)
局部变量和它后边的语句之间
方法内的功能逻辑部分之间
{”,“}”
开括号“{”要放在块的所有者的下一行,单起一行;
闭括号“}”要单独放在代码块的最后一行,单起一行。
空格
参数之间的逗号后要加一空格. 如:method1(int i1, int i2)
二元操作符和操作数之间要用空格隔开. 如:i + c;
强制类型转换时,在类型和变量之间要加一空格. 如:(int) i ;
注释
注释应该增加代码的清晰度
保持注释的简洁,不是任何代码都需要注释的,过多的注释反而会影响代码的可读性
建议先写注释,后写代码,注释和代码一起完成
注释类型
C#的注释要认真写,打///就能帮你补全了,没理由偷懒。
块注释
主要用来描述文件,类,方法,算法等,放在所描述对象的前边
行注释
主要用在方法内部,对代码,变量,流程等进行说明。整个注释占据一行。
尾随注释
与行注释功能相似,放在代码的同行,但是要与代码之间有足够的空间,便于分清。
例:int m = 4 ; //注释
如果一个程序块内有多个尾随注释,每个注释的缩进要保持一致。
注释哪些部分
项目
注释哪些部分
参数
参数用来做什么
任何约束或前提条件
字段/属性
字段描述
类
类的目的
已知的问题
类的开发/维护历史
接口
目的
它应如何被使用以及如何不被使用
局部变量
用处/目的
成员函数注释
成员函数做什么以及它为什么做这个
哪些参数必须传递给一个成员函数
成员函数返回什么
已知的问题
任何由某个成员函数抛出的异常
成员函数是如何改变对象的
包含任何修改代码的历史
如何在适当情况下调用成员函数的例子适用的前提条件和后置条件
成员函数内部注释
控制结构
代码做了些什么以及为什么这样做
局部变量
难或复杂的代码
处理顺序
声明
每行要只有一个声明,如果是声明i,j,k之类的简单变量可以放在一行;
除了for循环外,声明要放在块的最开始部分。for循环中的变量声明可以放在for语句中。如:for(int i = 0; I < 10; i++) 。
避免块内部的变量与它外部的变量名相同。
表达式和语句
每行建议只有一条语句。
if-else,if-elseif语句,任何情况下,都应该有“{”,“}”
switch语句,每个switch里都应包含default子语句
属性和方法的选择
@ 基本原则是方法表示操作,属性表示数据。如果其他各方面都一样,优先使用属性而不是方法。
@要使用属性,如果该成员表示类型的逻辑attribue
@如果属性的值存储在内存中,而提供属性的目的仅仅是为了访问该值,要使用属性而不要使用方法
@如果该操作每次返回的结果不同,那么要使用方法
@如果该操作比访问字段慢一个或多个数量级,要使用方法。
@如果该操作有严重的副作用,要使用方法。
属性的设计规范:
如果不应该让调用方法改变属性值,要创建只读属性;
´ 不要提供只写属性;
@要为所有的属性提供合理的默认值,这样可以确保默认值不会导致漏洞或效率低的代码;
@要允许用户以任何顺序来设置属性的值;
@避免在属性的获取方法抛出异常。
属性的获取方法应该是个简单的操作,不应该有任何的条件。如果一个获取方法会抛出异常,按么可能它更应该设计为方法。
字段设计规范
不要提供公有的或受保护的字段。代之以属性来访问字段;
要用公有的静态只读字段来定义预定义的对象实例
例如:publicstatic readonly Color Red = new Color(0x0000FF);
参数设计中枚举和布尔参数的选择规范
要用枚举。在代码阅读,书写中,枚举都比布尔的可读性好很多
1.不使用单个字母的变量
2.一个方法只完成一个任务。不要把多个任务组合到一个方法中,即使那些任务非常小
3.避免写太长的方法
4.不在程序中使用固定数值,用常量代替
5.不用字符串常数
6.必要时使用enum,不用数字或字符串来指示离散值
7.不将成员变量声明为 public或 protected,声明为private
8.方法名需能看出它作什么,不使用会引起误解的名字
9.花括弧需独立一行
10变量名中不使用下划线
11.尽量使用英文,如果实在没有合适的英文进行描述
- C#程序编码规范
- C#程序编码规范
- C#程序编码规范
- C#程序编码规范
- C#程序编码规范
- C#程序编码规范
- C#程序编码规范
- C#程序编码规范
- C#程序编码规范
- C#程序编码规范
- c# 程序编码规范
- C#程序编码规范
- C#程序编码规范 (选择自 wirte 的 Blog)
- C# 编码规范
- C#编码规范
- C#编码规范
- C#编码规范
- C# 编码规范 zz
- python模块之codecs: 自然语言编码转换
- poj1046
- 输入一个字符串表达式,输出计算结果
- [学习笔记]使用GNU Toolchain在STM32上跑起一个最小OS
- Spiral Matrix II
- c# 程序编码规范
- ASP.NET运行机制原理
- jsp技术
- XAMPP for MAC 安装后MYSQL不能正常启动的解决办法
- vs2012编译使用lua 5.2静态库
- Intent 传递中 Bundle与intent.putExtra 的关系
- 牡丹江的水题们
- ZOJ 3593 One Person Game (扩展欧几里得)
- linux下安装nginx