3

ドキュメントによると、C# では、「値の型をボックス化すると、Object 参照型のインスタンス内にパッケージ化されます。これにより、値の型をガベージ コレクション ヒープに格納できます。」

「ガベージ コレクション ヒープ」がない場合はどう なりますか? ガベージ コレクション ヒープが完全に割り当てられており、利用可能な「ガベージ コレクション ヒープ」メモリがありませんか? 例外をスローするか、別の場所に割り当てますか?

4

3 に答える 3

4

これは、他のオブジェクトの割り当てと同じです。使用可能なメモリがなく、ガベージ コレクションによっても使用可能にできない場合は、OutOfMemoryException.

このコードを考えることができます:

int x = 10;
object o = x;

次のように:

int x = 10;
object o = new Int32_Wrapper(x);

Int32_Wrapper「boxed int」クラスはどこにありますか。(これを C# で明示的に行うことはできませんが、それが基本的な効果です。)

于 2012-07-28T06:14:46.590 に答える
0

ガベージコレクターのヒープのようなものです。つまり、このメモリ空間に格納されているオブジェクトは、GCによって「検査」されます。ただし、現在のCLR実装には他のヒープがないため、これはヒープのみとして最もよく知られています=)

–アンドレカリル

于 2012-07-28T05:54:41.450 に答える
0

ガベージコレクションされたヒープが完全に割り当てられると、GCがトリガーされてメモリが解放され、(OS管理対象VMからの)メモリが管理対象ヒープに追加され、使用できなくなるまで、メモリ不足例外がスローされます。

于 2012-07-28T06:18:22.930 に答える