在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
无废话简单高效C#编码规范20100611
自己看自己的代码啥问题也没有,但是一个团队、N多个人、N多年的代码,就比较难维护、难阅读了,什么样的不好的习惯、错误漏洞能出来的就全出来了。 ※ 错误参考
using System; using System.Collections.Generic;
using System.Text; using System.Data; using FDA.Model; using FDA.IDAL; namespace FDA.BLL {
1.1 规范定义缺少公司的版权信息定义。 1.2规范定义using 没有用开发环境里中提供的工具进行整理、排序,引用了多余的 System.Text命名空间。 1.3规范定义该有的空行没空起来,using 与 namespace 之间需要有空行。
正确代码参考
/************************************************************** * Copyright (C) 2010 iTouch, Inc (http://www.itouch.com.cn) * All Rights Reserved * Created by JiRiGaLa <QQ:252056973>
* 版权所有:浙大网新易盛网络通讯有限公司 * 作 者:吉日嘎拉([email protected]) * 创建时间:2010-06-11
* 修 改 人: * 修改内容: * 修改时间: **************************************************************/
using System.Collections.Generic; using System.Data; using FDA.IDAL; using FDA.Model;
namespace FDA.BLL {
第2章 函数参数定义部分※ 错误参考
private static readonly IAlarmQuery dal = FDA.DALFactory.DataAccess.CreateAlarmQuery (); public DataTable GetAlarmHandtailorList(ref AlarmInfo info) { return dal.GetAlarmHandtailorList(ref info); } public DataTable GetAlarmHndtailorListNames(string creater) { return dal.GetAlarmHndtailorListNames(creater); } 2.1规范定义变量与函数之间需要有空行,该有的空行需要有。 2.2规范定义函数中的参数名不规范,建议 ref AlarmInfo info 修改为 ref AlarmInfo alarmInfo,首字母小写。 2.3规范定义函数与函数之间,应该有空格隔开,不要都拥挤在一起。 2.4规范定义由于此函数部分都是为了实现接口写的,函数的具体功能、参数说明等应该在接口里写就可以了,此处可以不写函数说明、参数说明。
正确代码参考
private static readonly IAlarmQuery dal = FDA.DALFactory.DataAccess.CreateAlarmQuery ();
public DataTable GetAlarmHandtailorList(ref AlarmInfo alarmInfo) { return dal.GetAlarmHandtailorList(ref alarmInfo); }
public DataTable GetAlarmHndtailorListNames(string creater) { return dal.GetAlarmHndtailorListNames(creater); }
※ 错误参考
protected static readonly IApplianceQuery aq = DALFactory.DataAccess.CreateApplianceQuery();
/// <summary> /// 获取器械实时库存信息(Search),按器械信息分类。 /// </summary> /// <param name="asp">分页实体</param> /// <param name="RecordCount">总记录数</param> /// <returns></returns> public DataSet GetAppPeriodStockSearch(ApplianceStockPager asp, ref int RecordCount) { return aq.GetAppPeriodStockSearch(asp, ref RecordCount); }
/// <summary> /// 获取器械实时库存明细信息的SQL语句 /// </summary> /// <param name="Qx_id">数据编号</param> /// <returns></returns> public ApplianceStockInfo GetAppPeriodStockDetail(string Qx_id) { return aq.GetAppPeriodStockDetail(Qx_id); } 2.5规范定义代码中的 aq,与上面代码中的 dal 习惯冲突,建议统一用 dal或者小写字母原则 aq 写为 ApplianceQuery。 2.6规范定义RecordCount 局部变量不能大写开头,建议用 recordCount。 2.7规范定义Qx_id不建议这么写,局部变量不能大写开头,建议写为qxId,也不建议用_ , ID建议写为Id。 2.8规范定义由于此函数部分都是为了实现接口写的,函数的具体功能、参数说明等应该在接口里写就可以了,此处可以不写函数说明、参数说明。
正确代码参考
protected static readonly IApplianceQuery dal = DALFactory.DataAccess.CreateApplianceQuery();
/// <summary> /// 获取器械历史库存信息(Search),按器械信息分类。 /// </summary> /// <param name="applianceStockPager">分页实体</param> /// <param name="recordCount">总记录数</param> /// <returns>数据集</returns> public DataSet GetApplianceStockSearch(ApplianceStockPager applianceStockPager, ref int recordCount) { return dal.GetApplianceStockSearch(applianceStockPager, ref recordCount); }
/// <summary> /// 获取器械历史库存明细信息的SQL语句 /// </summary> /// <param name="qxId">数据编号</param> /// <returns>分页实体</returns> public ApplianceStockInfo GetApplianceStockDetail(string qxId) { return dal.GetApplianceStockDetail(qxId); } ※ 错误参考
/// <summary> /// 获得数据列表,如根据仓库获取探头列表 /// </summary> public DataSet GetDllList(string strColum, string strWhere) { return dal.GetDllList(strColum, strWhere); } 2.9规范定义在函数参数中变量中不要加str等前缀 strColum、strWhere应该写为colum、sqlWhere。
正确代码参考
public DataSet GetDllList(string colum, string where) { return dal.GetDllList(colum, where); }
※ 错误参考
SystemManage.cs 文件,代码 1206 行
2.10规范定义光功能定义就这么多,那实现部分更不是海一样的代码了?需要分割、职责分明、把一个大的功能模块划分为多个功能部分。
※ 错误参考
namespace FDA.BLL { public class Remoting { 2.11规范定义Remoting 是关键字,不建议用关键字做类名、函数名、参数名等。
|
请发表评论