当前位置: 首页 > article >正文

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.kler.cn/a/312805.html

相关文章:

  • Linux手动安装nginx
  • nuxt3添加wowjs动效
  • 大模型开发整体流程 基于个人知识库的问答助手 项目流程架构解析
  • 【安全测试】sqlmap工具(sql注入)学习
  • 【随机种子】Random Seed是什么?
  • 阿里1688 阿里滑块 231滑块 x5sec分析
  • 【自然语言处理】补充:布尔模型
  • VMware Fusion虚拟机Mac版 安装Win10系统教程
  • 如何在Windows上安装Docker
  • centos 7.9安装k8s
  • SpringBoot开发-数据加密
  • 鸿蒙开发(NEXT/API 12)【同步读写流】远场通信服务
  • Kafka3.8.0+Centos7.9的安装参考
  • 如何确保Java程序分发后不被篡改?使用JNI对Java程序进行安全校验
  • Linux C# DAY3
  • 道路裂缝,坑洼,病害数据集-包括无人机视角,摩托车视角,车辆视角覆盖道路
  • 超级Prompt!
  • linux网络编程4
  • 定义可引用的 CI/CD 配置文件中的输入参数
  • 【笔记】自动驾驶预测与决策规划_Part3_路径与轨迹规划
  • 中国IT产业新挑战与机遇共存
  • 【使用Hey对vllm接口压测】模型并发能力
  • ATE自动化测试系统集成:软件与硬件的技术结合
  • 迭代器和生成器的学习笔记
  • JVM 运行时数据区详解(下)
  • Windows通过网线传文件