固定

fixed 語句將記憶體固定在一個位置。記憶體中的物件通常是移動的,這使垃圾收整合為可能。但是當我們使用不安全的指標指向記憶體地址時,不能移動該記憶體。

  • 我們使用 fixed 語句來確保垃圾收集器不重定位字串資料。

固定變數

var myStr = "Hello world!";

fixed (char* ptr = myStr)
{
    // myStr is now fixed (won't be [re]moved by the Garbage Collector).
    // We can now do something with ptr.
}

用於不安全的上下文。

固定陣列大小

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

fixed 只能用於 struct 中的欄位(也必須在不安全的上下文中使用)。