.Netプログラマーたちは毎日Objectを扱っています。 もし彼らにObjectとはなんなのかを聞くと、おそらくObjectとはすべてのタイプの基底クラスだと答えるでしょう。 この答は正しいが不十分です。 この記事では、われわれはCoreCLRのソースコードを読んでObjectとはどんなものかをより深く理解できます。 そして最後はメモリー上のObjectの構造を実際に観察します。 Objectのメモリー構造 これからの内容をよく理解するために、まずはObjectのメモリー構造を表す画像をご覧ください: Objectは三つの部分に分かれています オブジェクトヘッダー(=シンクロブロック) (object header = sync block) lock(obj)またはMonitor.Enter(obj)が使うインディクス値、一部のビットフラグも保存されている タイプ情報を指すポインタ (