代码命名规范
1.用Pascal规则来命名方法和类型。
/// <summary> /// 数据表格 /// </summary> public class DataGrid { /// <summary> /// 数据绑定 /// </summary> public void DataBind() { } }
2.用Camel规则来命名局部变量和方法的参数。
/// <summary> /// 产品 /// </summary> public class Product { /// <summary> /// 产品Id /// </summary> private string _productId; /// <summary> /// 产品名称 /// </summary> private string _productName; /// <summary> /// 添加产品 /// </summary> /// <param name="productId">产品Id</param> /// <param name="productName">产品名称</param> public void AddProduct(string productId, string productName) { } }
3.所有的成员变量前加前缀“_” 或者 “m_”。
/// <summary> /// 数据基础处理 /// </summary> public class DataBase { /// <summary> /// 链接字符串 /// </summary> private string _connectionString; /// <summary> /// 数据集 /// </summary> private string m_dataSet; }
4.接口的名称加前缀 “I”。
/// <summary> /// 转化接口 /// </summary> public interface IConvertible { /// <summary> /// 转化成byte类型 /// </summary> /// <returns>结果</returns> byte ToByte(); }
5.自定义的属性以“Attribute”结尾。
/// <summary> /// Table属性 /// </summary> public class TableAttribute : Attribute { }
6.自定义的异常以Exception结尾。
/// <summary> /// 空异常 /// </summary> public class NullEmptyException : Exception { }
7.方法的命名。一般将其命名为动宾短语。
/// <summary> /// 文件 /// </summary> public class File { /// <summary> /// 创建文件 /// </summary> /// <param name="filePath">文件路径</param> public void CreateFile(string filePath) { } }
8.局部变量的名称要有意义。
不要用x,y,z等等,用For循环变量中可使用i, j, k, l, m, n。
/// <summary> /// 用户 /// </summary> public class User { /// <summary> /// 获取用户 /// </summary> public void GetUser() { string[] userIds = { "ziv ", "zorywa ", "zlh " }; for (int i = 0, k = userIds.Length; i < k; i++) { } } }
9.所有的成员变量声明在类的顶端,用一个换行把它分开。
/// <summary> /// 产品 /// </summary> public class Product { /// <summary> /// 产品Id /// </summary> private string _productId; /// <summary> /// 产品名称 /// </summary> private string _productName; /// <summary> /// 添加产品 /// </summary> /// <param name="productId">产品Id</param> /// <param name="productName">产品名称</param> public void AddProduct(string productId, string productName) { } }
10.用有意义的名字命名namespace,如:公司名、产品名。
11.建议局部变量在最接近使用它时再声明。
12.使用某个控件的值时,尽量命名局部变量。
// button = btn
// lable = lbl
// select = drop
// text = txt
// submit = sub
// radio = rdo
// password= pwd
// checkbox= chek
// image = img
// hidden = hid
13.把引用的系统的namespace和自定义或第三方的用一个换行把它们分开。
using System; using System.Web.UI; using System.Windows.Forms; using CSharpCode; using CSharpCode.Style;
14.文件名要能反应类的内容,最好是和类同名,一个文件中一个类或一组关连类。
15.目录结构中要反应出namespace的层次。
16.大括号 "{“要新起一行。
public Sample()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
17. 局部变量,看情况使用var,尽量不使用var关键字。
18.对象初始化,能简写最好简写:
ValueText vt=new ValueText{Value=10, Text="Age"};
19.注释规则
/// <summary> /// 账单 /// </summary> public class Bill { /// <summary> /// 名称(注释的时候此处名称跟///必须有一个空格) /// </summary> private string m_name; /// <summary> /// Initializes a new instance of the <see cref="Bill"/> class. /// </summary> /// <param name="amount">金额</param> public Bill(decimal amount) { // 使用当前对象属性必须加this this.Amount = amount; } /// <summary> /// 金额 /// </summary> public decimal Amount { get; set; } /// <summary> /// 添加公司信息(当方法参数超过5个以上必须封装) /// </summary> /// <param name="company">公司信息</param> public void AddCompany(Company company) { // 方法体代码最多150行 // 单行注释必须跟//有一个空格 if (company == null) { return; } // 跟}结尾代码必须有一个换行符号 this.m_name = company.CompanyName; } }
20.命名空间书写
// 命名空间建议在头部采用using的方式引用 除非是为了解决命名空间冲突问题 // 错误的写法 System.DateTime date = System.DateTime.Now; // 正确的写法 DateTime date = DateTime.Now;
21.附加优雅注释
1 /* 2 神兽保佑-代码无BUG 3 ┏┓ ┏┓ 4 ┏┛┻━━━┛┻┓ 5 ┃ ┃ 6 ┃ ━ ┃ 7 ┃ ┳┛ ┗┳ ┃ 8 ┃ ┃ 9 ┃ ┻ ┃ 10 ┃ ┃ 11 ┗━┓ ┏━┛ 12 ┃ ┃ 神兽保佑 13 ┃ ┃ 代码无BUG! 14 ┃ ┗━━━┓ 15 ┃ ┣┓ 16 ┃ ┏┛ 17 ┗┓┓┏━┳┓┏┛ 18 ┃┫┫ ┃┫┫ 19 ┗┻┛ ┗┻┛ 20 */
/* _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ . ' \\| |// `. / \\||| : |||// \ / _||||| -:- |||||- \ | | \\\ - /// | | | \_| ''\---/'' | | \ .-\__ `-` ___/-. / ___`. .' /--.--\ `. . __ ."" '< `.___\_<|>_/___.' >'"". | | : `- \`.;`\ _ /`;.`/ - ` : | | \ \ `-. \_ __\ /__ _/ .-` / / ======`-.____`-.___\_____/___.-`____.-'====== `=---=' ............................................. 佛祖保佑 永无BUG 佛曰: 写字楼里写字间,写字间里程序员; 程序人员写程序,又拿程序换酒钱。 酒醒只在网上坐,酒醉还来网下眠; 酒醉酒醒日复日,网上网下年复年。 但愿老死电脑间,不愿鞠躬老板前; 奔驰宝马贵者趣,公交自行程序员。 别人笑我忒疯癫,我笑自己命太贱; 不见满街漂亮妹,哪个归得程序员? */