为什么有两种不同的方法可以锁定.NET中的内存?他们之间有什么区别?
答案 0 :(得分:16)
fixed语句用于unsafe modifier的上下文中。 Unsafe声明您将使用指针算法(例如:低级API调用),这是在正常的C#操作之外。 fixed语句用于锁定内存,以便垃圾收集器在仍在使用时不会重新分配它。您不能在不安全的上下文之外使用fixed语句。
实施例
public static void PointyMethod(char[] array)
{
unsafe
{
fixed (char *p = array)
{
for (int i=0; i<array.Length; i++)
{
System.Console.Write(*(p+i));
}
}
}
}