Unity3d开发的C#编码规范

Unity3d开发的C#编码规范

  我的大部分的项目都是按照这一准则做的,不一定完全符合大家的习惯,仅供参考。

目录

一、目的

二、C#类和接口命名

1)C#类

2)接口命名

三、方法声明

四、属性声明

五、C#变量声明

1)类的公有变量 - public

2)类的私有变量 - private

3)类方法的参数变量

4)类方法的局部变量

一、目的

为了更好的提高团队的工作效率,保证开发的有效性和合理性,并可最大程度的提高程序代码的可读性和可重复利用性,编写此规范。

一般来说,在一个开发团队开始一个项目以前都会制定一套编码规范,以便使大家的代码保持一致,所有人更容易阅读对方的代码,以便于后期的代码维护。

二、C#类和接口命名

1)C#类

首先,类的名字要用名词

然后,避免使用单词的缩写,除非它的缩写已经广为人知,如HTTP,它的全拼为Hypertext Transfer Protocol

所有名称,以说明该类的特性为宗旨。

如:public class Person{…}

必须有相应的修饰符,如class Person{…}=〉protected class Person{…}

必须严格使用public,protected,private,等。。。

类名必须以大写开头,命名要尽量简单。

如:public class PersonSex{…},应写成public class Sex{…}

2)接口命名

接口的名字要以大写字母I开头。保证对接口的标准实现名字只相差一个“I”前缀,例如对IComponent接口的标准实现为Component

泛型类型参数的命名:命名要为T或者以T开头的描述性名字,例如:

public class List<T>

三、方法声明

方法的名称:如果需要详细的描述,应尽量缩短。更应以描述清楚为宗旨。一般情况,以动词开头或仅为动词。

如:public void GiveMeMoney()  => public void GiveMoney()

私有方法和属性,以小写开头。

如:private void giveMoney()

公共方法和属性,以大写开头。

如:public void GiveMoney()

如果方法返回一个成员变量的值,方法名一般为Get+成员变量名,如GetName(取得名称);如果方法返回的值是bool变量,一般是以Is作为前缀。

另外,如果必要,考虑用属性来替代方法。

如public string Name { get; set; }

如果方法是修改一个成员变量的值,则方法名一般为:Set + 成员变量名,如SetName(设置名称)。同上,也可以考虑用属性来替代方法。如public string Name { get; set; }

四、属性声明

首字母大写,如

public string PersonNum { get; set; } 

public int PersonNum

{

set{m_PersonNum = value; }

get{ return m_PersonNum; }

}

private int m_PersonNum;

另外,如果是只读属性,则 public string PersonNum { get; private set; } 

或 public string PersonNum { get; protected set; }

五、C#变量声明

所有的变量声明尽量不要使用简写,除非简写形式能够显而易见的让人明白意义。如局部变量的声明cameraController(摄像机控制者)。

1)类的公有变量 - public

首字母大写,如 Person

2)类的私有变量 - private

前缀以”m_”开头,后面的名称首字母大写,如m_Transform

如果私有变量想显示在”Inspectors”属性面版上时,尽量不要声明成”public”类型,而是声明为”private”再在变量名称前添加[SerializeField]标识,如下

[SerializeField]

    private float m_BeginTime = 0;

3)类方法的参数变量

以小写字母开头,如 person

4)类方法的局部变量

以小写字母开头,如 manager

单字符的变量名一般只用于生命期非常短暂的变量:i,j,k,m,n一般用于integer;c,d,e一般用于characters;s用于string

如果变量是集合,则变量名要用复数。

例如表格的行数,List<int> formLines = new List<int>();

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

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

相关文章

YOLO交通目标识别数据集(红绿灯-汽车-自行车-卡车等)

YOLO交通目标识别 数据集 模型 ui界面 ✓图片数量15000&#xff0c;xml和txt标签都有&#xff1b; ✓class&#xff1a;biker&#xff0c;car&#xff0c;pedestrian&#xff0c;trafficLight&#xff0c;trafficLight-Green&#xff0c;trafficLight-GreenLeft&#xff0c; t…

2024年度国自然基金初审不受理的十大原因

我是娜姐 迪娜学姐 &#xff0c;一个SCI医学期刊编辑&#xff0c;探索用AI工具提效论文写作和发表。 2024年度基金申请已落下帷幕。近日&#xff0c;《中国科学基金》刊登了国自然基金委工作人员总结的2024年度国自然项目分析。一起来看下&#xff0c;为来年再战做准备。 …

【Docker】安装全流程与配置完整镜像源(可安装 nginx)

目录 一、卸载历史版本&#xff08;选&#xff09;二、配置 yum 源三、安装 docker四、配置 docker 镜像源加速&#xff08;选、强烈建议&#xff09;4.1 配置阿里镜像加速4.2 配置其他镜像源 五、启动 docker参考文章与视频 本文基于 Linux - CentOS 7 操作系统。 一、卸载历史…

面试真题:谈一谈Mysql的分库分表

分表和分库是什么&#xff1f;有什么区别&#xff1f; 分库是一种水平扩展数据库的技术&#xff0c;将数据根据一定规则划分到多个独立的数据库中。每个数据库只负责存储部分数据&#xff0c;实现了数据的拆分和分布式存储。分库主要是为了解决并发连接过多&#xff0c;单机 my…

【2024】前端学习笔记7-颜色-位置-字体设置

学习笔记 1.定义&#xff1a;css2.颜色&#xff1a;color3.字体相关属性&#xff1a;font3.1.字体大小&#xff1a;font-size3.2.字体风格&#xff1a;font - style3.3.字体粗细&#xff1a;font - weight3.4.字体族&#xff1a;font - family 4.位置&#xff1a;text-align 1.…

uniapp快速入门教程,内容来源于官方文档,仅仅记录快速入门需要了解到的知识点

uniapp快速入门教程&#xff0c;内容来源于官方文档&#xff0c;仅仅记录快速入门需要了解到的知识点 目录 介绍uniapp 介绍uniapp x 介绍功能框架图创建项目&发布组件/标签的变化js的变化css的变化工程结构和页面管理 pages.jsonmanifest.json 应用配置组件easycom组件规…

QT For Android开发-打开PPT文件

一、前言 需求&#xff1a; Qt开发Android程序过程中&#xff0c;点击按钮就打开一个PPT文件。 Qt在Windows上要打开PPT文件或者其他文件很容易。可以使用QDesktopServices打开文件&#xff0c;非常方便。QDesktopServices提供了静态接口调用系统级别的功能。 这里用的QDesk…

Isaac Sim 4.2.0 Windows版本打开报 fbgemm.dll 加载错误

方案一&#xff1a;下载缺少的dll复制到目录里即可 可以看到后台命令窗口出现了错误&#xff0c;发生在import pytorch的时候&#xff0c;根据提示&#xff0c;是因为fbgemm.dll缺少依赖&#xff0c;导致加载异常&#xff0c;一般情况是缺少 libomp140.x86_64.dll 这个文件&am…

【BEV 视图变换】Ray-based(2): 代码复现+画图解释 基于深度估计、bev_pool(代码一键运行)

paper&#xff1a;Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D code&#xff1a;https://github.com/nv-tlabs/lift-splat-shoot 一、完整复现代码(可一键运行)和效果图 import torch import torch.nn as nn import mat…

数模方法论-整数规划

一、基本概念 非线性规划的应用包括工程设计、资源分配、经济模型等。在求解过程中&#xff0c;由于非线性特性&#xff0c;常用的方法有梯度法、牛顿法、启发式算法等。求解非线性规划问题时&#xff0c;解的存在性和唯一性通常较难保证&#xff0c;且可能存在多个局部最优解…

《飞机大战游戏》实训项目(Java GUI实现)(设计模式)(简易)

目录 一、最终实现后&#xff0c;效果如下。 &#xff08;1&#xff09;简单介绍本游戏项目&#xff08;待完善&#xff09; &#xff08;2&#xff09;运行效果图&#xff08;具体大家自己可以试&#xff09; 初始运行情况。 手动更换背景图。 通过子弹攻击敌机&#xff0c;累…

Echats 实现CPK (过程能力)研究报告

背景: 实现: Echarts Option 代码示例 option {title: {text: 折线图示例 - X轴为数值},xAxis: {type: value, // X 轴改为数值型min: 0, // 最小值max: 10, // 最大值},yAxis: {type: value},series: [{type: line,data: [[0, 150], [2, 230], [4, 224], [6…

嵌入式单片机STM32开发板详细制作过程--01

大家好,今天主要给大家分享一下,单片机开发板的制作过程,原理图的制作与PCB设计,以及电子元器件采购与焊接。 第一:单片机开发板成品展示 板子正面都有各个芯片的丝印与标号,方便焊接元器件的时候,可以参考。(焊接完成之后,成品图如下) 第二:开发板原理图制作 在制…

FLStudio21Mac版flstudio v21.2.1.3430简体中文版下载(含Win/Mac)

给大家介绍了许多FL21版本&#xff0c;今天给大家介绍一款FL Studio21Mac版本&#xff0c;如果是Mac电脑的朋友请千万不要错过&#xff0c;当然我也不会忽略掉Win系统的FL&#xff0c;链接我会放在文章&#xff0c;供大家下载与分享&#xff0c;如果有其他问题&#xff0c;欢迎…

Spring后端直接用枚举类接收参数,自定义通用枚举类反序列化器

在使用枚举类做参数时&#xff0c;一般会让前端传数字&#xff0c;后端将数字转为枚举类&#xff0c;当枚举类很多时&#xff0c;很可能不知道这个code该对应哪个枚举类。能不能后端直接使用枚举类接收参数呢&#xff0c;可以&#xff0c;但是受限。 Spring反序列默认使用的是J…

投资学 01 定义,投资

02. 03. 3.1 直接投资&#xff1a;使用方和提供方是一个人

yolov8模型在Xray图像中关键点检测识别中的应用【代码+数据集+python环境+GUI系统】

yolov8模型在X yolov8模型在Xray图像中关键点检测识别中的应用【代码数据集python环境GUI系统】 1.背景意义 X射线是一种波长极短、穿透能力极强的电磁波。当X射线穿透物体时&#xff0c;不同密度和厚度的物质会吸收不同程度的X射线&#xff0c;从而在接收端产生不同强度的信号…

WordPress建站钩子函数及使用

目录 前言&#xff1a; 使用场景&#xff1a; 一、常用的wordpress钩子&#xff08;动作钩子、过滤器钩子&#xff09; 1、动作钩子&#xff08;Action Hooks&#xff09; 2、过滤器钩子&#xff08;Filter Hooks&#xff09; 二、常用钩子示例 1、添加自定义 CSS 和 JS…

实战OpenCV之直方图

基础入门 直方图是对数据分布情况的图形表示&#xff0c;特别适用于图像处理领域。在图像处理中&#xff0c;直方图通常用于表示图像中像素值的分布情况。直方图由一系列矩形条&#xff08;也被称为bin&#xff09;组成&#xff0c;每个矩形条的高度表示某个像素值&#xff08;…

信息安全工程师(8)网络新安全目标与功能

前言 网络新安全目标与功能在当前的互联网环境中显得尤为重要&#xff0c;它们不仅反映了网络安全领域的最新发展趋势&#xff0c;也体现了对网络信息系统保护的不断加强。 一、网络新安全目标 全面防护与动态应对&#xff1a; 目标&#xff1a;建立多层次、全方位的网络安全防…