【浙大网新图灵通讯】无废话简单高效C#编码规范20100621

为什么80%的码农都做不了架构师?>>>   hot3.png

无废话简单高效C#编码规范2010060621

 

自己看自己的代码啥问题也没有,但是一个团队、N多个人、N多年的代码,就比较难维护、难阅读了,什么样的不好的习惯、错误漏洞能出来的就全出来了。

第1章     变量命名

错误参考

 

   FDA.OA.Birthdays.WishTemplate wishTemplateBll = new FDA.OA.Birthdays.WishTemplate();

 

       /// <summary>

        /// 绑定贺卡祝福模板数据

        /// </summary>

        <param name="id">用户所属单位id </param>

        public void BindWishTemplateById(string id)

        {

        FDA.OA.Birthdays.WishTemplate wishTemplateBll = new FDA.OA.Birthdays.WishTemplate();

 string sqlQuery = string.Format(" AND FDAId={0} ",id);

            int totalRecord = 0;

            IList<WishTemplateInfo> list = wishTemplateBll.GetWishTemplateList(PageIndex, PageSize,id, sqlQuery, out totalRecord);

            base.BindGrid(totalRecord, list);

        }

1.1   规范定义

全局变量最好尽量少用,变量或者实例只在方法调用时定义。全局变量和局部变量应该区别开,尽量避免混用。

 

正确代码参考

 

 

        /// <summary>

        /// 绑定贺卡祝福模板数据

        /// </summary>

         <param name="id">用户所属单位id </param>

        public void BindWishTemplateById (string id)

        {

            FDA.OA.Birthdays.WishTemplate wishTemplateBll = new FDA.OA.Birthdays.WishTemplate();

            string sqlQuery = string.Format(" AND FDAId = {0} ", id);

            int totalRecord = 0;

            IList<WishTemplateInfo> list = wishTemplateBll.GetWishTemplateList(PageIndex, PageSize,id,sqlQuery,out totalRecord);

            base.BindGrid(totalRecord, list);

        }

 

 

错误参考

 

       txtSubject.Text.ToString();

1.2规范定义

声明或者方法返回的字符串类型,后面不需再添加多余的 ToString()方法。

 

正确代码参考

        

        txtSubject.Text;

 

   

错误参考

 

   DataSet ds_ADC = new DataSet();

  DataSet ASD123 = new DataSet();

 

1.3规范定义

变量命名不能包含下划线,关键字或者字母与数字组合,应简洁明了,通俗易懂。

 

正确代码参考

 

        DataSet dateSetUserInfo = new DataSet();

 

 

错误参考

     

    UserNametxt    UserNamelbl   Addlbl   GVUserInfo Delbtn  

 

1.4规范定义

控件类型简称写在前面,再加后缀。带有命令操作的按钮名应写命令的全称,如:btnDelete。

 

正确代码参考

 

TextBox:             txtUserName;

         Label:                lblUserName;

         Button:               btnAdd   btnDelete

      GridView:             gvUserInfo

 

      

错误参考

 

        bool returnValue = sendWishBll.Add(sendWishModel) > 0;

        if (returnValue)

        {

            Framework.Utility.ScriptUtil.AlertAndRedirect("您的贺卡发送成功!", RedirectUrl);

        }

 

1.5规范定义

标点符号不能随便写。比如:感叹号,系统提示的语句使用句号结束,标点符号后面需再空一格。感叹号尽量少使用。

 

正确代码参考

                

         bool returnValue = sendWishBll.Add(sendWishModel) > 0;

         if (returnValue)

         {

             Framework.Utility.ScriptUtil.AlertAndRedirect("您的贺卡发送成功。", RedirectUrl);

         }

 

 

错误参考

 

     string sqlQuery = " delete OASendBirthWish where SendWishId = @SendWishId ";

 

       string sqlQuery = string.Format(" and a.FDAId={0} and UserId!={1} ", id, userId);

1.6规范定义

        SQL或者Oracle中的关键字,以及Where条件中尽量使用大写形式,避免出错。如果方法中传递的是属性,首字母应大写,方法内的局部变量小写。

 

正确代码参考

  

        string sqlQuery = " DELETE OASendBirthWish WHERE SendWishId =@SendWishId ";

  

        string sqlQuery = string.Format(" AND a.FDAId={0} AND UserId!={1} ", id, userId);

 

 错误参考

 

      public interface IDbWishTemplate

{

}

 

      public class SqlWishTemplate : IDbWishTemplate

{

}

1.7规范定义

    类或者接口名称标头需要添加注释,指明类名或者接口的用途。

 

正确代码参考

 

 

/// <summary>

       /// 定义贺卡模板接口

      /// </summary>

       public interface IDbWishTemplate

{ 

}

 

/// <summary>

      /// 贺卡模板数据访问层

      /// </summary>

     public class SqlWishTemplate : IDbWishTemplate

 { 

}

 

第2章 方法定义

错误参考

 

       /// <summary>

        /// 获取用户信息

        /// </summary>

        public void GetUser();

        {

         

        }

2.1规范定义

方法命名尽量规范,简单明了,通俗易懂

 

正确代码参考

 

        /// <summary>

        /// 获取用户信息实体

        /// </summary>

       public void GetUserModel();

       {

       }

 

错误参考

  

 /// <summary>

        /// 删除行提示事件

        /// </summary>

        /// <param name="sender"></param>

        protected void gvWishMaterialList_RowCreated(object sender, GridViewRowEventArgs e)

        {

            if (e.Row != null && e.Row.RowType == DataControlRowType.DataRow)

            {

                // 添加删除按钮提示操作

                LinkButton linkButton = (LinkButton)e.Row.Cells[5].Controls[0];

                linkButton.Attributes.Add("onclick", "return confirm('您真的要删除吗? ')");

            }

     }

 

2.2规范定义

方法上方生成的注释参数类型以及个数,与参数列表要保持一致。如果是由开发工具自动生成的事件或者方法,可不需要写注释。

 

正确代码参考

 

protected void gvWishMaterialList_RowCreated(object sender, GridViewRowEventArgs e)

        {

            if (e.Row != null && e.Row.RowType == DataControlRowType.DataRow)

            {

                // 添加删除按钮提示操作

                LinkButton linkButton = (LinkButton)e.Row.Cells[5].Controls[0];

                linkButton.Attributes.Add("onclick", "return confirm('您真的要删除吗? ')");

            }

    }

 

 

错误参考

 

        public void BindWishMaterialById()  // 绑定贺卡素材数据      

 {

            string sqlQuery = string.Format(" AND FDAId={0} ", FDAID);

            int totalRecord = 0;

            IList<WishMaterialInfo> list = wishMaterialBll.GetWishMaterialList(PageIndex, PageSize, FDAID, sqlQuery, out totalRecord);

            base.BindGrid(totalRecord, list);

    }

 

2.3规范定义

    方法名中指明需要传递的参数,参数列表中一定要传递参数,如ById。注释要写在方法上面。

 

正确代码参考

 

  /// <summary>

        /// 绑定贺卡素材数据

        /// </summary>

        public void BindWishMaterialById(string id)

        {

            string sqlQuery = string.Format(" AND FDAId={0} ",id);

            int totalRecord = 0;

            IList<WishMaterialInfo> list = wishMaterialBll.GetWishMaterialList(PageIndex, PageSize,id, sqlQuery, out totalRecord);

            base.BindGrid(totalRecord, list);

        }

 

 

错误参考

 

      /// <summary>

       /// 定义贺卡模板接口

       /// </summary>

      public interface IDbWishTemplate

 {

          ///<summary>

          /// 获取所有的生日祝福模板信息

/// </summary>

         /// <param name="id">所属单位主键</param>

         /// <returns>DataReader</returns>

        SqlDataReader GetAllWishTemplateInfo(int id);

}

 

 

2.4规范定义

  数据库底层接口中,方法返回的数据类型,要考虑不同数据库的兼容性,必须支持多种数据库,返回接口类型。接口中方法添加了注释,在逻辑层等其它地方调用时,可不再另外写注释。

 

正确代码参考

 

/// <summary>

         /// 定义贺卡模板接口

        /// </summary>

        public interface IDbWishTemplate

 {

         ///<summary>

          /// 获取所有的生日祝福模板信息

/// </summary>

         /// <param name="id">所属单位主键</param>

        /// <returns></returns>

         IDataReader GetAllWishTemplateInfo(int id);

}

 

 

错误参考

      

       FDA.OA.Birthdays.WishTemplate wishTemplateBll = new FDA.OA.Birthdays.WishTemplate();

 SqlDataReader sqlDataReader= wishTemplateBll.GetAllWishTemplateInfo(id);

2.5规范定义

界面层不能直接调用SQL或者Oracle数据库标识特征的方法,要考虑返回值在不同数据库的兼容性。

 

正确代码参考

 

       

       FDA.OA.Birthdays.WishTemplate wishTemplateBll = new FDA.OA.Birthdays.WishTemplate();

       IDataReader iDataReader = wishTemplateBll.GetAllWishTemplateInfo(id);

 

 

 

转载于:https://my.oschina.net/iwenr/blog/227794

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/37883.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

概念炒作后,数字孪生更需要“埋头苦干”

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 近日&#xff0c;中科院院士、北京大学环境科学与工程学院院长朱彤在第二届中国数字碳中和高峰论坛的演讲中提到&#xff0c;传统的物理模型在预测预报中存在很多未解的不确定性因素&#xff0c;而只有将数字模型和大量数据…

辞旧岁立新年 | 展望前端工程师的2023

「InfoQ 年度技术盘点与展望」是由InfoQ主办的年度技术盘点与展望项目&#xff0c;是 InfoQ 全年最重要的内容选题之一。 近日&#xff0c;字节跳动云原生 PaaS 资深前端工程师黄健受邀参与&#xff0c;分享主题为 《展望前端研发工程师的 2023》 。本文整理自黄健于直播中分享…

TikTok产品分析竞品分析

一、简单背景 TikTok自2018年额全球下载量超过Instagram和Facebook成为下载量第一的内容社交软件。 应用市场短视频&#xff08;Short-form video&#xff09;分类中总榜第一&#xff0c;远超Likee和Lasso&#xff08;总榜分别63和598&#xff09;&#xff0c;热度仅次Instagra…

【技术简史】1995-1996 开启的互联网时代范式:信息无处不在

【技术简史】1995-1996 开启的互联网时代范式:信息无处不在 目录 ​编辑

GPT-5停不停?Bengio痛心跳出呼吁,LeCun怒斥AI末日论者

【导读】呼吁暂停GPT-5的公开信发出后&#xff0c;沉默许久的Bengio发了长文&#xff0c;解释自己签字的原因&#xff0c;而LeCun继续强调&#xff0c;现在的担忧根本是杞人忧天&#xff0c;与AI末日论者辩论毫无意义。 呼吁暂停比GPT-4更强AI训练的公开信&#xff0c;把超强A…

Java微信公众号开发(附源码!!!)

笔者最近在为一个艺考服务团队开发手机端的服务&#xff0c;由于开发app需要的时间较长&#xff0c;所以选择开发微信公众号。本人比较擅长Java开发&#xff0c;所以本文是基于Java语言的公众号开发。话不多说&#xff0c;直接进入正题。 准备工作&#xff1a; 一、在微信公众…

Java微信公众号发送消息-保姆级教程附源码

目录 1. 概念说明&#xff1a; 2. 开发准备&#xff1a; 3. 测试demo&#xff08;更改配置信息即可使用&#xff09; 3.1. 服务器配置 3.1.1.配置填写说明 3.1.2.校验服务器有效性: 3.1.3.URL后端接口代码和校验代码&#xff08;servlet) 3.1.4.配置内网穿透&#xff0c;…

最新PHP微信扫码关注公众号并授权登录源码

正文: PHP微信扫码登录看起来简单&#xff0c;但做起来有点麻烦&#xff0c;开发起来就会浪费很多的时间。 PHP判断是否首次关注公众号&#xff0c;扫码关注公众号获取微信用户头像、openid和省市等信息源码。 第一步&#xff1a;获取关注二维码ticket,并且传参二维码qrcode…

大模型“涌现”的思维链,究竟是一种什么能力?

听说最近AI大厂的开发人员和高校的NLP研究人员&#xff0c;都在琢磨&#xff0c;怎么让大模型“涌现”。那画面莫名就让我想到了程序员给服务器上香来保佑不宕机&#xff0c;都有种求诸于天的玄学。 所谓“涌现”,在大模型领域指的是当模型突破某个规模时&#xff0c;性能显著提…

云原生是什么?细数云原生的5大特征

云原生是什么&#xff1f;细数云原生的5大特征 00 云原生是什么&#xff1f;01 轻、快、不变的基础设施02 弹性服务编排03 开发运营一体化04 微服务架构05 无服务模型小结 来源&#xff1a;大数据DT 导读&#xff1a;随着公有云和私有云的广泛部署&#xff0c;云计算基础设施成…

1分钟快速了解芝数云“大数据”实训场景!

点击蓝字&#xff0c;关注我们 大数据集群搭建耗时长&#xff1f;电脑挂机后中断&#xff0c;无法恢复进度怎么办&#xff1f;大数据集群搭建循环反复&#xff0c;永远停留在第一步&#xff1f;大数据实训过程中&#xff0c;一步错步步错&#xff0c;只能从头开始... ... 芝诺数…

产品更新 | 芝数云全新升级 打造线上教学新体验!

点击蓝字 关注我们 - The World AIDS Day - - 芝 数 云 升 级 啦 - 为了教师更加方便的开展教学工作&#xff0c;学生更加便捷的进行上课&#xff0c;数字素养与技能提升平台于12月12日晚全面升级&#xff0c;从页面以及性能方面进行了优化&#xff0c;整体焕然一新。 焕…

推动数云融合,神州数码要做企业领先的数字化转型合作伙伴

众所周知&#xff0c;伴随着数字经济的蓬勃发展&#xff0c;各种数字技术创新正在给传统行业带来颠覆式的变革&#xff0c;数字化转型也成为了广大企业未来发展的必经之路。 那么问题就来了&#xff1a;面对新时代的数字化大潮&#xff0c;企业应该选择一条怎样的数字化转型之路…

数云运维总监陈延宗:基于阿里云计算巢,数云CRM一键云上交付

12月21日&#xff0c;在弹性计算年度峰会上&#xff0c;数云CRM运维总监陈延宗发表了主题为《计算巢最佳实践--数云CRM一键云上交付》的演讲&#xff0c;介绍了数云CRM在阿里云计算巢平台的最佳实践。 图&#xff1a;数云CRM运维总监陈延宗 01 传统交付的四个痛点 数云目前已发…

校历第九周 cf+数云图杯 做题笔记

CF1754 A. Technical Support &#xff08;思维、模拟、贪心&#xff09; https://codeforces.com/contest/1754/problem/A /** Author: xiao-p* Date: 2022-10-27 20:31:41* LastEditors: wzp 304535326qq.com* LastEditTime: 2022-10-27 20:46:10* Description: 304535326q…

百数云最新功能webAPI推送数据样例

百数云最新增加了webAPI数据推送的功能。 必须有数据推送的样例才能进行进一步处理,下面是我得到的推送的数据样例。 # 测试数据触发 {} # 新增数据触发 {eventType: data_create.web.one,eventData: {fieldsData

新生代采集器“易数云”--入门版教学

**背景&#xff1a;**现如今很多白领或学生一族&#xff0c;迫于工作或者学习的压力&#xff0c;经常会需要一些数据作为工作或者学习上的用途。碍于市面上常见的采集器“编写爬虫规则难又或者数据费用高”的压力&#xff0c;很多人望而兴叹。今天我们就为大家带来一款比较容易…

驭数云低代码平台简介

1.1 驭数云低代码平台简介 1.概述 编码枪代码生成器是目前国内第一家从运维到开发都在线上完成的代码生成器。通过简单的在线设计&#xff0c;便可完成70%左右的网站或APP项目的开发任务&#xff0c;编码枪使用说明书将会带你了解代码生成器的使用&#xff0c;使本产品更加易…

数云融合打造数字化新引擎!

本期作者&#xff1a;李刚 神州数码集团 副总裁 CTO 几年前&#xff0c;一颗新星在汽车制造领域可谓是“横空出世”&#xff0c;一举成为全球市值最大的车企&#xff0c;开启了世界新能源汽车的新潮流。这&#xff0c;就是特斯拉。 短短几年内取得如此卓越成就&#xff0c;特斯…

聊天机器人简要理解

聊天机器人 身边的同事或多或少都在聊ChatGPT&#xff0c;这又使得学生时代训练模型的恐惧感开始支配我。说起聊天机器人&#xff0c;我们先熟悉一下不同对话系统的概念。 一、对话系统分类 1、单轮对话 单轮与传统的问答系统相类似&#xff0c;是智能对话系统的初级应用。…