C# 最佳实践
现代 C# 编码规范、命名约定、异常处理原则、性能建议
C# 最佳实践
现代 C# 一直在进化——充分利用语言特性让代码更安全、更简洁、更高性能。
学完本章你将: 掌握现代 C# 编码规范、命名约定、性能建议。
命名约定
csharp
// 类/方法/属性 → PascalCase
public class UserService
{
public string UserName { get; set; }
public Task<User> GetByIdAsync(int id) { }
}
// 局部变量/参数 → camelCase
var userCount = 0;
void Process(int userId, string userName) { }
// 接口 → I 前缀
public interface IUserRepository { }
// 私有字段 → _camelCase(常用风格)
private readonly ILogger<UserService> _logger;
现代 C# 推荐写法
csharp
// ✅ 文件作用域命名空间(C# 10+)
namespace MyApp.Services;
// ✅ record 用于数据模型
public record UserDto(string Name, int Age);
// ✅ switch 表达式代替 if-else 链
var grade = score switch
{
>= 90 => "A",
>= 80 => "B",
_ => "C",
};
// ✅ using 声明代替 using 块
using var file = File.OpenRead("data.txt");
// ✅ 可空引用类型始终开启
// <Nullable>enable</Nullable>
性能建议
csharp
// ✅ Span<T> 避免堆分配
Span<int> numbers = stackalloc int[3] { 1, 2, 3 };
// ✅ StringBuilder 拼接大量字符串
// ✅ ArrayPool 复用大数组
// ✅ ValueTask 减少小异步方法的分配
// ✅ ConfigureAwait(false) 在库代码中
// ✅ sealed 类的方法可被 JIT 内联
// ❌ 装箱——值类型转 object 会产生堆分配
object boxed = 42; // 装箱
// ❌ 异常作为流程控制——抛异常很贵