C# 语言fixed语句

示例

fixed语句将内存固定在一个位置。内存中的对象通常会四处移动,这使得垃圾收集成为可能。但是当我们使用指向内存地址的不安全指针时,该内存不能被移动。

  • 我们使用fixed语句来确保垃圾收集器不会重新定位字符串数据。

固定变量

var myStr = "你好,世界!";

fixed (char* ptr = myStr)
{
    // myStr现在已修复(垃圾收集器不会[删除])。
    // 我们现在可以使用ptr做一些事情。
}

在不安全的上下文中使用。

固定数组大小

unsafe struct Example
{
    public fixed byte SomeField[8];
    public fixed char AnotherField[64];
}

fixed只能用于结构(struct)中的字段(也必须在不安全的上下文中使用)。