C#项目代码规范

目的

  1.方便代码的交流和维护。

  2.不影响编码的效率,不与大众习惯冲突。

  3.使代码更美观、阅读更方便。

  4.使代码的逻辑更清晰、更易于理解。

在C#中通常使用的两种编码方式如下

  Camel(驼峰式): 大小写形式-除了第一个单词,所有单词第一个字母大写,其他字母小写。
  Pascal(帕斯卡): 大小写形式-所有单词第一个字母大写,其他字母小写。

C#代码规范

1、 类型(类、结构、委托、接口)、字段、属性、方法、事件的命名

  优先考虑使用英文(尽量使用英文),如果实在没有合适的英文进行描述,可以使用拼音,使用中文是不符合要求的。

2、不使用缩写

  所有类型、字段、属性、方法、事件尽量不使用缩写,包括大家熟知的缩写,例如msg。

3、不使用单个字母的变量

  不使用单个字母的变量, 像 i、m、n,使用index等来替换,用于循环迭代的变量除外。

 

4、用Tab作为缩进,并设置缩进大小为4

5、 注释

类型、属性、事件、方法、方法参数,根据需要添加注释。

如果类型、属性、事件、方法、方法参数的名称已经是自解释了,不需要加注释;

否则需要添加注释。

6、类型名称和源文件名称一致

当类型命名为Product时,其源文件命名只能是Product.cs。

7、所有命名空间、类型名称使用Pascal风格

8、本地变量、方法参数名使用Camel风格(不使用下划线)

红色标记的为使用Camel风格的变量或者方法参数

9、在一个类中,各个方法需用一空行(最好是一个空行)

10、避免使用大文件。如果一个文件里的代码超过300-400行,必须考虑将代码分开到不同的类中。同时避免写太长的方法,如果一个方法代码过长(暂时没有明确指出方法的行数),应该考虑将其分解为不同的方法

11、一个方法只完成一个任务。不要把多个任务组合到一个方法中,即使那些任务非常小

12、调用类型成员内部其他成员,需加this,调用父类成员需加base

13、不在代码中使用具体的路径和驱动器名。 使用相对路径,并使路径可复用

14、不要“捕捉了异常却什么也不做“。如果隐藏了一个异常,你将永远不知道异常到底发生了没有

15、如果if语句块的内容只有一行,可以不加花括号,并且最好和if语句位于同一行

16、类型内部的私有字段和受保护字段,使用Camel风格命名,但加“_”前缀

 

17、类型成员的排列顺序

类型成员的排列顺序自上而下依次为:

字段:私有字段、受保护字段

属性:私有属性、受保护属性、公有属性

事件:私有事件、受保护事件、公有事件

构造函数:参数数量最多的构造函数,参数数量中等的构造函数,参数数量最少的构造函数

方法:重载方法的排列顺序与构造函数相同,从参数数量最多往下至参数最少

18、委托和事件的命名

委托以EventHandler作为后缀命名,例如 SalesOutEventHandler。

事件以其对应的委托类型,去掉EventHandler后缀,并加上On前缀构成。

示例代码如下:

19、返回bool类型的方法、属性的命名

如果方法返回的类型是bool类型,则其前缀为Is,例如:IsHidden。

如果某个属性的类型为bool类型,则其前缀为Can,例如:CanHidden。

20、常见集合后缀类型命名

凡符合下表所列的集合类型,应添加相应的后缀。

21、常见字段、属性命名

字段、属性种类比较繁杂,因此仅列出最常用的几项

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

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

相关文章

.NET MAUI实战 FolderPicker

1.概要最近在迁移 GeneralUpdate.Tool的时候需要用到文件夹选择,在MAUI中可以使用FolderPicker进行选择。注意,和上篇文章的文件选择不一样。因为在.NET MAUI中目前还没有傻瓜式直接可用的FolderPicker供开发者使用所以需要自己动手做一些修改。完整示例…

h5外卖源码php_校园食堂外卖APP走红 更多APP定制开发上一品威客网

近日,西安一高校推出了一款校园食堂外卖APP走红网络。该APP涵盖学校食堂的所有饭菜,并可给该校的师生提供校园食堂饭菜外卖服务。饭菜价格与食堂统一,且仅供该校内的师生使用。 目前开发校园外卖订餐系统可谓是一个较热门的创业项目&#xff…

Python面向对象学习 1 (什么是面向对象,面向对象的应用场景,待更新)

程序设计的三种基本结构: 面向对象,面向过程,函数式编程1,什么是面向对象编程 面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 …

iPhone屏幕大小和适配建议(包括 XR XS XSM )

//4 ----:{{0, 0}, {320, 480}} //5、5s ----:{{0, 0}, {320, 568}} //6、6s、7、8 ----:{{0, 0}, {375, 667}} //6P、7P、8P ----:{{0, 0}, {414, 736}} 复制代码X 系列 //X ----:{{0, 0}, {375, 812}} //XR ----:{{0, 0}, {414, 896}} //XS ----:{{0, 0}, {375, 812}} //XSM …

go语言中的方法method

package main;import "fmt"//重新定义一个类型 //为该INT类型扩展方法 type INT int;type A struct {name string; }type B struct {name string; }func main() {a : A{};a.Print();//指针传递a.Print2();fmt.Println(a);//同上(*A).Print2(&a);b : B{};b.Print(…

微信自定义tabbar有小红点_自定义微信小程序tabBar组件上边框的颜色

背景:在微信小程序的实际开发过程中,有时候我们需要修改微信小程序提供的 tabBar 组件顶部边框的颜色,以满足项目需求解决方案:方式一:通过tabBar组件自带的 borderStyle 属性来控制边框的颜色,将边框的颜色…

又一批优质.NET6实战项目,面临永久下线...

多好的实战项目大家抓紧时间实操起来呀移动电商实战这次能上岸,最重要的是这个Vue3VantUI.NET6SqlSugar移动电商实战,全部都是最新最热的技术栈,写上简历后面试基本上都是问的这块儿内容。我先给大家看看项目的UI。项目UI全套实战源码这个电商…

laravel 配置微信公众号时{errcode:-106,errmsg:token check fail}

一、问题描述 做微信授权登录时,遇到的一个坑,提示配置失败,F12,响应为 errcode":-106,"errmsg":"token check fail 二、解决方案: 注:宗旨就是让微信能够访问你填写的网址&#xff…

电商企业怎样用好大数据

电商企业怎样用好大数据 大数据正在促生新的蓝海,催生新的经济增长点,正在成为政府和企业竞争的新焦点。2012年,瑞士达沃斯论坛发布《大数据,大影响》报告,称“数据已经成为一种新的经济资产类别,就像货币或…

ORACLE经常使用系统查询

1 查询系统全部对象 SELECT OWNER, OBJECT_NAME, OBJECT_TYPE, CREATED, LAST_DDL_TIME, TIMESTAMP, STATUS FROM DBA_OBJECTS WHERE OWNERUPPER(SCOTT) 2 查看系统全部表 SELECT OWNER, TABLE_NAME, TABLESPACE_NAME FROM DBA_TABLES 3 查看全部用…

Safari 版本回退方法

回退条件 版本回退的前提是关闭电脑的SIP机制,命令行 csrutil status 检测状态。Mac os 10.14以下版本回退Safari后插件还是可以用的,升了新系统退了也没法用了。我的是旧系统 SIP关闭方法 1 重启MAC,按住cmdR直到屏幕上出现苹果的标志和进度…

同步方法 调用异步防范_Spring一个注解实现方法的异步调用,再也不用单开线程了...

介绍同步调用先来演示一下什么是同步调用测试方法输出如下doTaskOne start 1566121320372doTaskOne end 1566121321373doTaskTwo start 1566121321373doTaskTwo end 1566121322374可以看到方法一执行完毕,方法二才会执行异步调用不返回值1.Spring Boot启动类上加Ena…

使用docker搭建redis主从

一、构建 Docker 环境 1、创建 dockerfile FROM centos:latest RUN groupadd -r redis && useradd -r -g redis redis RUN yum -y update && yum -y install epel-release && yum -y install redis && yum -y install net-tools EXPOSE 63…

【源码探索】.NET中的List,是哪种数据结构

“当你提出疑问并开始思考时&#xff0c;答案就离你不远了”图片&#xff1a;奥森公园的向日葵 拍摄于2022年7月23日 摄影师&#xff1a;刘先生01—问题缘起严格来说应该是List<T>&#xff0c;因为.NET的核心基础类库中&#xff0c;并没有List&#xff0c;作为泛型类型的…

dpdk对虚拟化的支持调研

目录&#xff1a; 虚拟化dpdk的实现研究 virtiovhostSR-IOV热迁移相关研究拓展本文记录近期对dpdk在虚拟化和云计算领域应用的研究成果&#xff0c;内容梳理如下。 虚拟化 虚拟化&#xff0c;抽象来说&#xff0c;就是将物理资源逻辑化。具体来说&#xff0c;虚拟技术的实现是在…

服务器环境

一 linux 系统搭建Java项目环境 1 环境准备&#xff1a;jdk,tomcat, nginx,reids,mysql jdk:java环境 Tomcat&#xff1a;Java项目服务器 nginx&#xff1a;项目静态资源&#xff0c;域名解析&#xff08;ssl&#xff09; redis: 项目可能会用到 mysql: 数据库 环境转载于:htt…

隐藏键盘_三星新专利:带有隐藏键盘的三折叠屏手机

10月31日消息 众所周知&#xff0c;三星现已推出四款折叠屏机型(Fold、Fold 2、Z Flip、W20)&#xff0c;而此前多有传言表示三星下一代折叠屏机型(以 Galaxy Z Fold 3 代称)将在目前折叠屏手机的基础上增加 S Pen&#xff0c;而昨日公布的一份专利也侧面辅证了这一说法。此外&…

Blazor学习之旅(3)实现一个Todo应用

【Blazor】| 总结/Edison Zhou大家好&#xff0c;我是Edison。最近在学习Blazor做全栈开发&#xff0c;因此根据老习惯&#xff0c;我会将我的学习过程记录下来&#xff0c;一来体系化整理&#xff0c;二来作为笔记供将来翻看。本篇&#xff0c;我们通过一个简单的Todo示例应用…

JavaScript 省市级联效果

为什么80%的码农都做不了架构师&#xff1f;>>> JavaScript 省市级联效果 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">2 <html xmlns"http…

20分钟完成Mac上的 LNMP 环境部署,优雅·高效开发(Docker方式)

一、前言 对于很多开发者来说&#xff0c;突然转到在 mac 系统开发&#xff0c;可能会非常难受&#xff0c;主要有以下几个原因 1、mac 上安装软件程序坑多&#xff0c;比如安装 PHP、Nginx&#xff0c;会存在很多使用 linux 或 windows 时没有遇到过的坑 2、对 mac 系统不熟…