C# 的基本代码规范

2023-05-16

个人遵守的通用 C# 代码规范,其中参考了微软的代码规范。实际上在是使用一些框架开发时(例如 ASP.NET Core)也应该遵循一定的模式规范,但是本文只讨论一些比较通用的代码规范。

文章将从下面的几个方面来谈论规范:

  1. 代码排版
  2. 标识符命名
  3. 类型设计

代码排版

良好的代码排版是整洁代码目标的起点,方法中的代码应该按照逻辑功能分块,并以空行分隔。并在必要时,或者能够代码比较大的重用性的时候将部分块抽取成为函数,使之重用。

花括号应该另起一行,同时如何 if 后语句只有一句,可以省略花括号。if 条件后的语句应该另起一行,而不要写在一行

变量声明应该靠近使用他的地方。

标识符命名

方法类名以及属性都应该使用 Pascal 格式,变量字段应该使用小驼峰格式,如果成员字段不是常量应该以下划线开头以区别方法中的变量。

所有的派生类型命令应该遵循一定的规律,所以的自定义异常应该以 Exception 结尾,所以的自定义属性应该以 Attribute 结尾,所以的自定义容器类型应该以 Collection 结尾,
扩展方法所在的静态类应该以被扩展的类名+ Extensions 名称。

对于 abstract 类型不要命名为 XXBase,应当去一个取合适的名称。接口命名应该以 I 开头,接口的默认实现名称应该是接口名称去掉开头的 I,不要以 DefaultXXX 命名。大众熟识的
常用名称应该留给常用的标准实现,而给特别的详细的名称赋予到高级的,特定的实现。

相比前缀应当优先使用后缀,这样通过 IDE 的代码提示能够直接显示出来。

类型设计

对于实现了非托管资源的类型应该实现 IDispose 接口,并使用 Dispose 模式,如果关于关闭对应资源已有总所周知的方法,那么该方法应该与 Dispose 方法等价。如非清楚你自己在做什么
不要实现析构方法。

类型的继承层次不应该太深。

如果类型将要放入使用哈希表的类型中时,则应该同时重写 GetHashCode 和 Equals 方法,同时如果类型的 hashcode 相同那么则它们应该相等,需要注意加入到哈希表中的对象在他的生命周期中 hashcode
应该保持不变,否则哈希表将会混乱。

引用类型的 == 运算符应该使用比较应用,Equals 函数比较值相等性。值类型应该重写 == 运算和以及 Equals 函数,并使它们含义相同。

//... 略

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 的基本代码规范 的相关文章

随机推荐

  • Matlab 删除含有特定数值的行 / Matlab定义excel表头

    1 删除含有特定值的行 xff0c 以含有 9999为例 一共9列 xff0c 不一定出现在那一列 xff0c 只要是有 9999 xff0c 我就需要删除 xff1a span class token keyword for span j
  • Ubuntu 14.04下安装Chrome与报错解决

    第一种方式 xff1a 1 在ubuntu中启动终端 2 在终端中 xff0c 输入以下命令 xff1a sudo wget http www linuxidc com files repo google chrome list P etc
  • Android之ScrollView嵌套ListView解决工具

    public class Utility public void setListViewHeightBasedOnChildren ListView listView 获取ListView对应的Adapter ListAdapter lis
  • Java中关于保留小数点后几位(可以四舍五入的)的方法

    文章目录 一 格式化保留小数方法1 格式化printf输出2 DecimalFormat类3 通过运算输出 二 四舍五入保留2位小数为例 1 使用BigDecimal类 2 DecimalFormat类使用 3 String Format方
  • 【项目SpringBoot配置详解】

    x1f431 福利 想不想自定义spring Boot启动Logo 哪里改springboot的启动标志 xff1f spring boot启动总会显示这样的图标 xff0c 但是我想不一样 方法 xff1a 首先我们在resource目录
  • Android 中的 Lottie 动画入门

    增强应用程序的用户体验是任何开发人员的首要任务之一 与图像和文本描述相比 xff0c 为某些描述提供动画总是可以增强应用程序的用户体验 xff01 Lottie是用于移动应用程序的库之一 xff0c 有助于以更简单的方式提供动画 如何开始在
  • Java实现文件上传到本地(自定义保存路径)

    首先基于 springboot 实现的 xff0c 其他场景下可以引入相应的 jar 包后进行整合 首先写入一个方法 xff0c 方法的参数为传入的文件 xff0c 方法的返回值自定义 xff0c 这里返回类型为 String 返回文件的存
  • 关于Qt中使用QFile打开文件时遇到问题的分析

    项目场景 xff1a 在文件打开的时候 xff0c 使用QFile的QIODevice的不同模式 xff0c 会出现不同的表现 xff08 这是我一个同事当时遇到的问题 xff0c 现在拿来分析分析 xff0c 以下的所有事例代码均用于示范
  • vue+vue_cli3 + typeScript + echarts热力图

    vue 43 vue cli3 43 typeScript 43 echarts热力图 准备工作 准备工作 1 申请百度地图秘钥http lbsyun baidu com apiconsole key create 注 xff1a 如果是运
  • forEach循环 当满足条件时跳出当前循环

    forEach循环 当满足条件时跳出该循环 使用try catch try this menuData forEach item any 61 gt if toPath as string indexOf item url 61 61 61
  • vue3.0 学习笔记

    vue3学习笔记 vue3 0六大亮点vue3 0 如何变快的 xff1f vue3 0六大亮点 performance xff1a 性能比vue2 0快1 2 2倍tree shaking support xff1a 按需编译 xff0c
  • 从后台读取以文件流的形式加载图片

    span class token comment html span span class token operator lt span img span class token operator span src span class t
  • element-ui el-transfer添加拖拽排序功能

    html 部分 lt el card class 61 34 box card 34 gt lt el transfer render content 61 34 renderFunc 34 v model 61 34 value 34 d
  • Mac系统装android开发环境无法创建SD卡解决方案

    无法创建SD卡是小事 xff0c 但是引起的问题却是大事 xff0c 模拟器无SD卡则android项目无法正常生成R文件 xff0c 导致HelloWorld都无法跑起来 xff0c 头大 xff0c 折腾了几天 xff0c 终于找到原因
  • audio报错DOMException: play() failed because the user didn‘t interact with the document first

    chrome66版本之后禁掉了声音的自动播放 xff0c 这句报错提示 xff0c 调用play方法之前 xff0c 请先与页面进行交互 我们自己来封装一个可以自动播放的Audio xff0c 功能包含 xff1a 自动播放 暂停 循环播放
  • iview中Table的render用法大全

    1 日期格式化 xff08 yyyy MM dd hh mm s xff09 title 34 格式化时间 34 key 34 time 34 render h params 61 gt let temp 61 39 39 if param
  • Vue添加中间层--service层

    Vue添加中间层 service层 在单页面应用中 xff0c 为了方便代码的管理 xff0c 提高可读性 xff0c 还有一个原因就是 xff0c 在项目开发工程中 xff0c 前端人员与后端开发人员的进程是不同步的 xff0c 在不同步
  • Vue is not defined

    Vue is not defined 场景再现 xff1a 在Vue的自定义组件中 xff0c 想要调用在 static serverconfig json中配置的全局地址ApiUrl 在自定义组件中 console log Vue pro
  • Vue中进行pdf的预览下载 vue-pdf

    1 使用npm 下载vue pdf npm install span class token operator span save vue span class token operator span pdf 2 封装pdf组件 span
  • C# 的基本代码规范

    个人遵守的通用 C 代码规范 xff0c 其中参考了微软的代码规范 实际上在是使用一些框架开发时 例如 ASP NET Core 也应该遵循一定的模式规范 xff0c 但是本文只讨论一些比较通用的代码规范 文章将从下面的几个方面来谈论规范