命名规范

本文档描述了CatLib框架中的命名规范。

如果您要为为 CatLib 发起贡献,您必须遵循这份命名规范文档。

 

如果没有明确指定访问级别(public|private等)则表示对所有访问级别生效。

概述

  • 代码必须使用4个空格缩进,而不要使用制表符(tab)
  • 使用using XXX,而不是new XXX.xxx()
  • {}必须换行,且内部代码顶格书写

    1. if(true)
    2. {
    3. var tf = true;
    4. }
  • 使用///代码进行注释

    1. /// <summary>
    2. /// 这里对代码进行了注释
    3. /// </summary>
    4. public string VariableName = "VariableName";
  • 对于容易产生歧义的表达式您应该使用括号包裹

    1. if(variable1 + (++variable2) > 0)
    2. {
    3. }
  • 模板必须为TStudlyCaps(驼峰式大写)以T开头

    1. public class Bootstrap<TType>
    2. {
    3. }
  • 接口必须为IStudlyCaps(驼峰式大写)以I开头

    1. public interface IBootstrap
    2. {
    3. }

类名及函数

  • 类名必须为StudlyCaps(驼峰式大写)

    1. public class Bootstrap
    2. {
    3. }
  • 函数名必须为StudlyCaps(驼峰式大写)

    1. public void MyFunc()
    2. {
    3. }

变量,常量及属性

  • 公共变量名必须为StudlyCaps(驼峰式大写)

    1. public string VariableName = "hello";
  • 受保护变量名必须为StudlyCaps(驼峰式大写)

    1. internal string VariableName = "hello";
    2. protected string VariableName = "hello";
    3. protected internal string VariableName = "hello";
  • 私有变量名必须为camelCase(驼峰式小写)

    1. private string variableName = "hello";
  • 属性名必须为StudlyCaps(驼峰式大写)

    1. public string VariableName{ get; set; }
  • 静态变量常量必须为StudlyCaps(驼峰式大写)

    1. public const string VariableName = "hello";
    2. public static readonly string VariableName = "hello";
    3. public static string VariableName = "hello";
    4. internal const string VariableName = "hello";
    5. protected const string VariableName = "hello";
    6. private const string VariableName = "hello";
  • 参数必须为camelCase(驼峰式小写)

    1. public void FunctionName(Action callFunction)
    2. {
    3. var localVariable = callFunction;
    4. }

枚举

  • 枚举名必须为StudlyCaps(驼峰式大写)

    1. public enum ApplicationEvents
    2. {
    3. }
  • 枚举元素名必须为StudlyCaps(驼峰式大写)

    1. public enum ApplicationEvents
    2. {
    3. OnStart = 1,
    4. OnInited = 2,
    5. }

命名空间

  • 代码必须在项目名的根命名空间中

    1. namespace CatLib
    2. {
    3. }
  • 组件代码必须在项目名.组件名的命名空间中

    1. namespace CatLib.Routing
    2. {
    3. }

文件

  • 文件名必须和类名一致
  • 文件必须只使用UTF-8而不使用BOM代码
  • 一个文件中不能出现2个及以上的类,除非它是内部类或者类的重载