• C# 软件编码规范


    一、代码注释

    并不是所有的代码均需要注释。

    1、类头部注释

    /// <summary>
    /// 描述类的用途
    /// 作者: 张三
    /// 日期: 2015/12/1
    /// </summary>
    public class MyClass{...}

    2、方法头部注释

    /// <summary>
    /// 描述方法的用途
    /// </summary>
    /// <param name=”param1”>参数的用途</param>...
    /// <returns>返回的结果</returns>
    public void MyMethod(){……}

    3、代码行注释

    public void FooMethod(){
    var t = 0; //局部变量注释,可写在行末
    //块注释, 写在代码行的上一行,单独一行或多行
    if(t > 0){
    Console.PrintLine("xxx");
    }
    }

    4、类属性注释

    /// <summary>
    /// 描述属性含义与用途
    /// </summary>
    private string helloStr;

    二、命名规则

    1、基本约定

    • 要使用可以准确说明变量/字段/类的完整的英文描述符,如vehicleNumber。
    • 要尽量采用项目所涉及领域的术语。
    • 要采用大小写混合,提高名字的可读性。
      • 驼峰表示法:camelCasing
      • Pascal表示法:PasalCasing
    • 避免使用缩写,如果一定要使用,就谨慎使用。
    • 对常见缩略词,两个字母的缩写要采用统一大小写的方式(示例:ioStream, getIOStream);多字母缩写采用首字母大写,其他字母小写的方式(示例:getHtmlTag)
    • 避免使用长名字(最好不超过 15 个字母)。
    • 避免使用相似或者仅在大小写上有区别的名字。
    标识符 大小写 示例 说明
     命名空间  Pascal  namespace Com.Techstar.ProductionCenter

     程序集、DLL和命名空间(name space)命名,一般情况下建议命名空间和目录结构相同。命名方式:

    命名空间(name space): 公司名+产品名+模块名,如:Srx.WeChatOA.Login, 表示三人行公司的微信OA项目的登录模块
    DLL: 公司名+(产品名)模块名,如:Srx.Common.dll, 表示三人行的公共模块

     类  Pascal  public class DevsList
    • 类的名字要用名词;
    • 避免使用单词的缩写,除非它的缩写已经广为人知,如HTTP。
    • 接口的名字要以字母I开头。保证对接口的标准实现名字只相差一个“I”前缀,例如对IComponent接口的标准实现为Component;
    • 泛型类型参数的命名:命名要为T或者以T开头的描述性名字,例如:
    public class List<T>
    public class MyClass<Tsession>
    • 对同一项目的不同命名空间中的类,命名避免重复。避免引用时的冲突和混淆;
     接口  Pascal  public interface ITableModel
     方法  Pascal  public void UpdateData()
    • 第一个单词一般是动词;
    • 如果方法返回一个成员变量的值,方法名一般为Get+成员变量名,如若返回的值 是bool变量,一般以Is作为前缀。另外,如果必要,考虑用
    • 属性来替代方法;
    • 如果方法修改一个成员变量的值,方法名一般为:Set + 成员变量名。同上,考虑用属性来替代方法。
     属性  Pascal  Public int Length{…}  
     事件  Pascal public event EventHandler Changed;   
     枚举值   Pascal  FileMode{Append}  
     参数  Camel  public void UpdateData(string fieldName)  
     私有字段  Camel  private string fieldName; 按照使用范围来分,我们代码中的变量的基本上有以下几种类型,类的公有变量;类的私有变量(受保护同公有);方法的参数变量;方法内部使
    用的局部变量。
    • 方法内部的局部变量采用camalString,例如workerName。
    • 尽量要使用短而且具有意义的单词;
    • 单字符的变量名一般只用于生命期非常短暂的变量:i,j,k,m,n一般用于integer;c,d,e 一般用于characters;s用于string
    • 如果变量是集合,则变量名要用复数。例如表格的行数,命名应为:RowsCount;
    • 命名组件要采用匈牙利命名法,所有前缀均应遵循同一个组件名称缩写列表, 如
    Button btnSubmit;//提交按钮
     非私有字段  Pascal  public string FieldName;
     局部变量  Camel  string fieldName;

    三、其他规范

    1. 变量声明, 请不要把多个变量声明写在一行中,即一行只声明一个变量。
    例如:

    String strTest1, strTest2;

    应写成:

    String strTest1;
    String strTest2;


    2. 避免方法中有超过5个参数的情况,一般以2,3个为宜,最多8个。如果超过了,则应使用struct来传递多个参数。
    避免写超大类, 类的代码行尽量控制在千行以内, 300到500行为最佳. 绝对不允许出现5000行以上的超大类.

    四、错误处理

    1. 不要“捕捉了异常却什么也不做“。如果隐藏了一个异常,你将永远不知道异常到底发生了没有。
    2. 发生异常时,给出友好的消息给用户,但要精确记录错误的所有可能细节,包括发生的时间,和相关方法,类名等。
    3. 只捕捉特定的异常,而不是一般的异常。

    五、建议

    1. 一个方法只完成一个任务。不要把多个任务组合到一个方法中,即使那些任务非常小。
    2. 使用C#的特有类型,而不是System命名空间中定义的别名类型。
    3. 别在程序中使用固定数值,用常量代替。
    4. 避免使用很多成员变量。声明局部变量,并传递给方法。不要在方法间共享成员变量。如果在几个方法间共享一个成员变量,那就很难知道是哪个方法
    在什么时候修改了它的值。
    5. 不在代码中使用具体的路径和驱动器名。 使用相对路径,并使路径可编程。
    6. 应用程序启动时作些“自检”并确保所需文件和附件在指定的位置。必要时检查数据库连接。出现任何问题给用户一个友好的提示。
    7. 如果需要的配置文件找不到,应用程序需能自己创建使用默认值的一份。
    8. 如果在配置文件中发现错误值,应用程序要抛出错误,给出提示消息告诉用户正确值。
    9. DataColumn取其列时要用字段名,不要用索引号。例:

      正确:DataColumn[“Name”]
      不好:DataColumn[0]
    10. 在一个类中,字段定义全部统一放在class的头部、所有方法或属性的前面。
    11. 在一个类中,所有的属性全部定义在一个属性块中:

  • 相关阅读:
    [入门到吐槽系列] 微信小程序 上传图片 前端压缩 保存到云存储 使用Canvas新API的巨坑!
    [入门到吐槽系列] Webix 10分钟入门 一 管理后台制作
    使用Spring提供的BeanUtils.copyProperties()方法报错:Could not copy property 'xxx' from source to target
    记录一次 java.lang.IncompatibleClassChangeError: Implementing class
    centos 7下ifcfgens33网卡配置文件详解
    二进制方式安装搭建k8s集群
    Win10下VMware Workstation 16 Pro最小化安装CentOS 7
    单点登录协议有哪些?CAS、OAuth、OIDC、SAML有何异同? itprobie
    SQL2005禁用相关存储过程方法 itprobie
    .NET 6 创建 Console 项目使用旧程序样式
  • 原文地址:https://www.cnblogs.com/llyfe2006/p/6929653.html
Copyright © 2020-2023  润新知