で、実行時には、Width とか Height とかのメンバー名を知る必要はなく、 このレイアウトさえ分かっていればメンバーにアクセスできます。 x.Width にアクセスしたければ変数 x の格納されている場所の先頭を、 x.Height ならば x から4バイト目を見ればいいことになります。 要するに、Rect 構造体のメンバーへのアクセスは、 実行時には、以下のような(C 言語風の)コードと同じような扱いになっています。 // Rect x; char x[8]; // x.Width = 3; *((int *)(x + 0)) = 3; // y.Height = 4; *((int *)(x + 4)) = 4; 実行時型情報をサポートしない言語では、 実行時に不要な 「Rect 構造体は Width とか Height という名前のメンバーを持っている」 というような情報は削
![実行時型情報(C# によるプログラミング入門)](https://cdn-ak-scissors.b.st-hatena.com/image/square/4d1b2b57fc676d21e7f59f354364abeac0ea062e/height=288;version=1;width=512/https%3A%2F%2Fufcpp.net%2Fimages%2Flogo_4.jpg)