参考作者博客:blog.coldwind.top
微软命名准则:https://learn.microsoft.com/zh-cn/dotnet/standard/design-guidelines/naming-guidelines
谷歌C#代码风格:https://google.github.io/styleguide/csharp-style.html
常见命名错误
错误的命名 | 正确的命名 |
KeyBoard | Keyboard |
StopWatch | Stopwatch |
Msg | Message |
ID | Id |
IoHelper | IOHelper |
HTTPClient | HttpClient |
DBSet | DbSet |
变量命名规范
小驼峰camelCase:
- 私有字段
- 局部变量
- 入参
- 依赖注入:_camelCase
大驼峰PascalCase:
- 命名空间
- 类名
- 方法名
- 接口名
- 泛型类型名
- 特性
- 依赖属性
方法命名规范
名称遵守大驼峰PascalCase命名规范
无论是否为公共方法,均首字母大写
选择合适的动词+名词
非公共方法可为名称添加Internal、Impl等字眼。
例外情况:局部方法、用于注册事件的方法(Window_Loaded)
异步方法
异步方法以Async结尾,和同名的同步方法进行区分,便于快速判断调用的方法是否需要等待。
例外情况:人尽皆知的方法(Task.Delay、Task.WhenAll),控制器中的方法(控制器中不会引起歧义
合理选择单词
- 选择最合适且被广泛接收的单词描述某个意思
- Order应该用于排序(orderby),而不是用于命令
- Apply用于表达”应用”,而不是”申请”
- Command常用于名词而非动词
- 避免使用过于宽泛或于标准库重名的词汇
- Core、Main、Action、Math
- 布尔类型的成员一般以Is、Has、Can开头
- IsVaild、IsActive、HasErrors
语法和时态
- 一般使用第三人称单数(可以考虑使用复数形式)
- Equals、IsEqual、AreEqual
- 尽量不要使用单复数不符合常见形式的(可适当违背词汇或语法)
- 使用Persons或PersonList 而不使用People