関数への参照によってデータ メンバーを渡し、その関数の実行中にガベージ コレクターが実行を開始し、データ メンバーを含むオブジェクトをメモリ内に移動するとどうなりますか?
class SomeClass
{
int someDataMember;
void someMethod()
{
SomeClass.someFunction(ref someDataMember);
}
static void someFunction(ref int i)
{
i = 42;
int[] dummy = new int[1234567890];
// suppose the Garbage Collector kicks in here
i = 97;
}
}
CLR は、ガベージ コレクション中に参照パラメーターが無効にならないようにするにはどうすればよいですか? クラス参照と同じように調整されていますか?