4
爲什麼有兩種不同的方式在.NET中鎖定內存?他們有什麼區別?固定和不安全有什麼區別
爲什麼有兩種不同的方式在.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));
}
}
}
}
使我不知道爲什麼有明確需要指定的代碼塊/方法是不安全的,編譯器必須知道它時,它看到的固定語句。 – arul 2009-02-27 13:19:37