.NET でメモリをロックする方法が 2 つあるのはなぜですか? それらの違いは何ですか?
Ted Smith
質問する
641 次
1 に答える
16
固定ステートメントは、安全でない修飾子のコンテキストで使用されます。Unsafeは、通常のC#操作の範囲外であるポインター演算(例:低レベルAPI呼び出し)を使用することを宣言します。固定ステートメントは、メモリを所定の位置にロックするために使用されるため、ガベージコレクターは、メモリがまだ使用されている間はメモリを再割り当てしません。安全でないコンテキストの外で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));
}
}
}
}
于 2009-02-27T13:13:19.797 に答える