C# 代码规范

Pascal 命名法:每个单词首字母均大写,例如:FieldName。

Camel 命名法:第一个单词首字母小写,其余单词首字母大写,例如:fieldName。

命名空间

使用 Pascal 命名法。

1
2
3
namespace System {}
namespace System.IO {}
namespace UnityEngine.UI {}

类,结构

使用 Pascal 命名法。

1
2
3
public class FlightBuilder {}
public class HotelInfo {}
public struct TicketShopper {}

接口

接口使用大写字母 I 做前缀,其后使用 Pascal 方式。

1
2
public interface ICache {}
public interface IClone {}

枚举

使用 Pascal 命名法。

1
2
3
4
5
public enum OrderFlag
{
None,
First
}

方法

使用 Pascal 命名法。

1
2
3
public void ClearCache() {}

private char[] GetCharArray() {}

方法参数

使用 Camel 命名法。

1
2
object GetCache(string cacheKey) {}
bool IsInt(string needCheckString) {}

属性

使用 Camel 命名法。

1
public string flightNo { get; set; }

常量

使用 Pascal 命名法。(建议使用此方法,单词比全大写更好辨认)

1
public const int PageIndex = 6;

也有人建议所有单词大写,多个单词之间用下划线 _ 隔开。

1
public const int PAGE_INDEX = 6;

私有成员变量

使用 m_ 开头,后面使用 Pascal 命名法。

1
private string m_SpriteName = "";

私有静态成员变量

使用 s_ 开头,后面使用 Pascal 命名法。

1
private static string s_SpriteName = "";

非私有成员变量

使用 Camel 命名法。同属性。

1
2
public string flightNo = "";
public string flightNo { get; set; }

局部变量

使用 Camel 方式命名。

1
2
int index = 6;
string airline = string.Empty;

委托

使用 Pascal 命名法。

1
2
3
delegate void RaiseEventHandler(string hand);
public RaiseEventHandler raiseEvent;
public event RaiseEventHandler raiseEvent;

缩进

使用 4 个空格。

大括号

独占一行,上下对齐。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class HotelInfo
{
public int number = 0;

public HotelInfo()
{
if (number > 10)
{

}
else if (number > 5)
{

}
else
{

}
}
}

代码空行

  • 方法与方法、属性与属性、属性与方法、属性与字段、方法与字段之间。
  • 方法中不同逻辑块之间。

代码空格

  • 关键字和左括符 “(”。
  • 方法名和左括符“(”不要使用。
  • 多个参数用逗号分隔,逗号后需要添加一个空格。
  • 除了“.”之外,所有二元操作符需要空格分开。
  • 一元操作符、++、–不能用空格分隔。
  • 语句表达式之间用空格分隔,常见于for, if 语句中。

本文参考:
https://zhuanlan.zhihu.com/p/42178836
https://blog.csdn.net/VS18703761631/article/details/94615734

参考 UnityUI 源码命名规范:
https://bitbucket.org/Unity-Technologies/ui/