私はこのMSDNMagazineの記事で、著者は次のように述べています(私の強調):
ボックス化は常に新しいオブジェクトを作成し、ボックス化されていない値のビットをオブジェクトにコピーすることに注意してください。一方、ボックス化を解除すると、ボックス化されたオブジェクト内のデータへのポインタが返されます。メモリコピーは発生しません。ただし、通常、コードによって、ボックス化されていない参照が指すデータがコピーされます。
太字にした文とそれに続く文に戸惑います。このMSDNページを含め、私が読んだ他のすべてのことから、ボックス化解除がヒープ上の値へのポインターを返すだけだと聞いたことはありません。開梱すると、最初と同じように、スタック上の値のコピーを含む変数が作成されるという印象を受けました。結局のところ、変数に「ヒープ上の値へのポインター」が含まれている場合は、値の型がなく、ポインターがあります。
誰かがこれが何を意味するのか説明できますか?作者はひび割れていましたか?(記事には他に少なくとも1つの明白なエラーがあります)。そして、これが真実である場合、「コードによって、ボックス化されていない参照が指すデータがとにかくコピーされる」場合はどうなりますか?
この記事は10年近く前のものであることに気づきました。おそらく、これは.Netの初期の段階で変更されたものかもしれません。