Z
ZHANK
.NET 生态

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;  // 装箱

// ❌ 异常作为流程控制——抛异常很贵