为什么在.NET中有两种不同的方式将内存锁定在适当的位置?它们之间有什么区别?
最佳答案
固定语句在unsafe modifier的上下文中使用。不安全声明您将使用指针算术(例如,低级API调用),这是常规C#操作之外的。 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));
}
}
}
}
关于c# - 固定和不安全有什么区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/594676/