diff --git a/Docs/CodeStyle.md b/Docs/CodeStyle.md new file mode 100644 index 0000000..101b8bb --- /dev/null +++ b/Docs/CodeStyle.md @@ -0,0 +1,147 @@ +# 代码贡献 + +代码贡献请遵循下面的规范。 + +### 提交规范 + +每个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# +/// +/// 设置场景名称 +/// +/// 场景名 +/// 如果设置成功返回True +public bool SetSceneName(string sceneName) +{ +} +``` + +[规则3-2] 公共字段注释,采用 /// 形式自动产生XML标签格式的注释。 + +注意:私有字段可以不用注释。 + +```C# +public class SceneManager +{ + /// + /// 场景的名字 + /// + public string SceneName; +} +``` + +[规则3-3] 私有字段注释,注释位于代码后面,中间Space键隔开。 + +```C# +public class Student +{ + private string _firstName; //姓氏 + private string _lastName; //姓名 +} +``` + +[规则3-4] 方法内的代码块注释。 + +```C# +public void UpdateHost +{ + // 和服务器通信 + ... + + // 检测通信结果 + ... + + // 分析数据 + ... +} +``` +