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