# C# 资源、非托管与边界检查清单

## IDisposable 与释放

- `using` / `await using` 是否覆盖所有需要释放的对象；是否存在可证泄漏路径。
- 实现 `IDisposable` 的类型是否正确实现释放模式（`Dispose(bool)`、`GC.SuppressFinalize`），终结器是否仅作兜底且逻辑安全。
- 重复 `Dispose` 是否仍安全（幂等）。

## Span、Memory 与不安全代码

- `Span<T>` / `ReadOnlySpan<T>` 是否越界或指向已释放缓冲区；`stackalloc` 与异步混用是否导致悬垂。
- `unsafe` / `fixed` / 指针算术是否在 diff 可证范围内安全；`Marshal` 与句柄生命周期是否配对。

## 终结器与顺序

- 析构顺序依赖是否脆弱；是否依赖其他对象的终结器顺序（应避免）。
