简约的c#编程规范
物理结构:
1. 保持文件夹的名称独立性,尽量以名称空间一致,如Net名称空间对应Net文件夹
2. 文件名尽可能的说明文件的内容,如XmlFileLoader.cs 表示该文件中有一个叫XmlFileLoader的类
3. 建立版本文件夹,如R1, R2, D1, D2, 最好能使用代码管理工具
逻辑结构:
1. 使用名称空间来分割大逻辑模块,如Net名称空间包含对网络的操作代码
2. 使用接口来衔接模块
3. 类功能尽可能独立,并尽量采用模式来设计
代码结构:
1. 命名:
名称空间:全名称,首字母大写
类名:全名称,首字母大写
私有变量:“_” 开头,简写3个字符或全名称,第一个单词小写后面单词首字母大写
局部变量:简写3个字符或全名称,第一个单词小写后面单词首字母大写
循环变量:i, j, k, index, item,
函数名:简写3个字符或全名称,第一个单词全名称首字母大写,后面可以简写3个字符
2. 换行:
大括号换行风格一致,如
{ {
} }
单行长度坚持以86个字符换行,便于打印显示
函数参数换行对齐 func( string a,
string b)
if else 条件不换行,if (a)
else if (b)
else
3. 注释
行顶注释,并且只使用//
类名必须注释
所有public函数都必须要注释,尽量使用自说明单词来起函数名和类名
尽量使用summary注释
对函数的注释要说明参数的默认值和可能产生失败的情况,并说明返回值意义
使用region来分块
4. 缩进对齐
声明等号对齐 string a = new string();
string abc = new string();
条件判断以变量对齐
if ( a == b &&
c == d)
使用Tab缩进,而不是空格
5. 建议
string类型变量加尾缀str
集合变量使用复数名词string items, 或集合string itemLst 或数组string itemArr
可变字符串操作使用StringBuilder类操作
控件名不要使用缩写开头,直接用有意义的全名称
bool型变量命名以is开头,bool isLoaded
尽量使用is, as关键字