本文比较了 C# 和 Rust 的借用检查器,探讨了 C# 如何通过 ref、ref struct 和 stackalloc 等特性实现内存安全。文章指出,C# 的借用检查不如 Rust 明确,缺乏生命周期标注,但通过垃圾回收机制和限制 ref 的使用范围也实现了内存安全。C# 的堆引用类似 Rust 的 'static 生命周期,拥有更大的灵活性,但也导致 ref 不能用于 lambda 捕获或类成员变量。文章认为 C# 和 Rust 的内存管理策略虽然方向相反,但却越来越相似。