YooAsset/Docs/CodeStyle.md

148 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 代码贡献
代码贡献请遵循下面的规范。
### 提交规范
每个PR只针对一项内容的改进或修复请勿合并提交。
PR标题尽量选择英文备注内容可选中文。
### 对齐规范
Tab键对齐可以在VS里设置
### 命名规范
[规则1-1] 英文单词命名。禁止使用拼音或无意义的字母命名。
[规则1-2] 直观易懂。使用能够描述其功能或有意义的英文单词或词组。
[规则1-3] 不要采用下划线命名法。
```C#
int car_type //错误:下划线命名。
```
[规则1-4] 常量、静态字段、类、结构体、非私有字段、方法等名称采用**大驼峰式命名法**
```C#
public const float MaxSpeed = 100f; //常量
public static float MaxSpeed = 100f; //静态字段
public class GameClass; //类
public struct GameStruct; //结构体
public string FirstName; //public字段
protected string FirstName; //protected字段
public void SendMessage(string message) {} //方法
```
[规则1-5] 私有字段、方法形参、局部变量采用 **小驼峰式命名法**
注意:私有字段以下划线开头
```C#
private string _firstName; //私有字段
public void FindByFirstName(string firstName) {} //方法参数
string firstName; //局部变量
```
[规则1-6] 接口命名
注意接口以大写字母I开头
```C#
public interface IState; //接口
```
[规则1-7] 枚举命名
注意枚举以大写字母E开头
```C#
public enum EGameType {Simple, Hard}//枚举及枚举值
```
### 编码规范
[规则2-1] 声明变量时,一行只声明一个变量。
```C#
private string _firstName;
private string _lastName;
```
[规则2-2] 类的字段声明统一放置于类的最前端。
```C#
public class Student
{
private string _firstName;
private string _lastName;
public string GetFirstName()
{
return _firstFiled;
}
}
```
[规则2-3] 一行代码长度不要超过屏幕宽度。如果超过了,将超过部分换行。
### 注释规范
[规则3-1] 公共方法注释,采用 /// 形式自动产生XML标签格式的注释。包括方法介绍参数含义返回内容。
注意:私有方法可以不用注释。
```C#
/// <summary>
/// 设置场景名称
/// </summary>
/// <param name="sceneName">场景名</param>
/// <returns>如果设置成功返回True</returns>
public bool SetSceneName(string sceneName)
{
}
```
[规则3-2] 公共字段注释,采用 /// 形式自动产生XML标签格式的注释。
注意:私有字段可以不用注释。
```C#
public class SceneManager
{
/// <summary>
/// 场景的名字
/// </summary>
public string SceneName;
}
```
[规则3-3] 私有字段注释注释位于代码后面中间Space键隔开。
```C#
public class Student
{
private string _firstName; //姓氏
private string _lastName; //姓名
}
```
[规则3-4] 方法内的代码块注释。
```C#
public void UpdateHost
{
// 和服务器通信
...
// 检测通信结果
...
// 分析数据
...
}
```