固定
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
中的欄位(也必須在不安全的上下文中使用)。