Box化(Boxing)とは?

.NETのオブジェクトには、値型と参照型があり、値型はスタックに、参照型はヒープに存在します。



BOX化(Boxing)を行うと、値型を参照型に変換する事が出来ます。つまり、ヒープ(※1)にオブジェクトをコピーする事をBOX化といいます。反対にBOX化解除(unboxing)とは参照型を値型に変換する事です。





一般的な言語(C#やVB.NET)では、マネージドヒープの値を直接変更できないので、BOX化を考える(※2)事は高速なアプリを作成する第一歩と言えます。







※1 .NETが管理するヒープを特にマネージドヒープと呼びます。小さなオブジェクトを沢山作成する事に最適化されています。

※2 C#やVBは文脈をみて勝手にBOX化します。対してMC++は明示的にBOX化する必要があります。MC++以外でBOX化を意識することは難しいかもしれません。

Leave a Reply

最初のコメントを頂けますか?

更新通知を受け取る »
avatar
wpDiscuz