C# 命名规范
发现很多 C# 开发者对命名规范不是很清楚,特地列出来。
大驼峰
- 说明:每个单词首字母都大写,单词直接连写。
- 在 C# 中常用于:类型(class/struct/enum/delegate)、接口(以 I 开头)、方法、属性、事件、常量、枚举成员、特性类(类名以
Attribute结尾)。
示例:
public class CustomerOrder { }
public interface IRepository { }
public enum Color { Red, Green, Blue }
public string GetName() { ... }
public int ItemCount { get; set; }
public const int DefaultTimeout = 30;
[Serializable]
public class MyCustomAttribute : Attribute { }
小驼峰
- 说明:第一个单词首字母小写,后续单词首字母大写。
- 在 C# 中常用于:方法参数、局部变量、私有方法的参数/局部变量(但字段多用下划线前缀变体)。
示例:
void Save(string fileName) {
var localCount = 0;
}
public void DoSomething(int retryCount) { ... }
下划线小驼峰
- 说明:私有实例字段常用下划线前缀 + 小驼峰(这是社区与官方样式指南常见/推荐的实践)。
- 在 C# 中常用于:私有字段(instance fields)
示例:
private int _retryCount;
private readonly ILogger _logger;
C# 特有命名规范
- 接口(Interface)必须以 I 开头
public interface IUnitOfWork { }
public interface ILogger { }
- Attribute 类必须以 Attribute 结尾
public class AuditAttribute : Attribute { }
- 扩展方法(Extension Method)所在类应以 Extensions 结尾
public static class DateTimeExtensions
{
public static bool IsWeekend(this DateTime date) => ...
}
- 异步方法必须以 Async 结尾
public async Task SaveAsync() { }
public ValueTask<bool> ExistsAsync() { }
- 泛型类型参数用 T 前缀(PascalCase)
public interface IRepository<T> { }
public class Result<TData> { }
- 事件处理方法命名格式:On + EventName
protected virtual void OnOrderCompleted() { }
- 私有方法、受保护方法仍用 PascalCase
private void LoadCache() { }
protected void ValidateOrder() { }
- 命名空间采用 PascalCase,使用公司或组织反向域名
namespace MyCompany.ProjectName.Services
{
}
速查表
| 命名方式 | 用途 |
|---|---|
| PascalCase | 类、接口(I)、结构体、枚举、属性、事件、方法、常量、委托、命名空间、扩展类(Extensions)、Attribute 类 |
| camelCase | 参数、局部变量 |
| _camelCase | 私有字段(含 readonly) |
| Async 结尾 | 异步方法 |
| Attribute 结尾 | 特性类 |
| Extensions 结尾 | 扩展方法类 |
| T 开头(泛型) | 泛型类型参数 |
| On + EventName | 事件处理方法 |
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Swaggy Macro
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果

