2011-01-19 21 views
1

私の以前の質問(ArrayListにアイテムを追加することについて)では、ポスターの1つは「参照はすでにオブジェクトです」 - それはどういう意味だったのでしょうか?私はそれを取得しません。 、それは実際に店舗は、私がコメント「System.Objectの」参照型と混同してしまっ再びreferences..but参照型はオブジェクトですか?

object X=5; 

object A=X; //here I am assigning reference to X so both are pointing to copy of 5 

をまたArrayListの例で:私は、参照はちょうど私が渡すことができますオブジェクトのアドレスであると思いました。どういう意味ですか?

私は簡単な例に非常に感謝します。私は、値の型とref.typesの違いを理解していますが、これは私がそれが動作することを知っている私は理解できない何かです。

+2

あなたは何を求めていますか? –

+0

System.Object ==オブジェクトです。 System.Int32 == intとまったく同じです。 –

答えて

4

あなたのコードで行ったことは、値の型で "boxed"されているので、値 "5"を含むヒープ上の参照型です。まず、の値/参照型(C#、、可変/不変性ボクシング/アンボクシング)の理解を試してみることをお勧めします。また、この(セクション2.3.4)で良い仕事をしていませんhttp://msdn.microsoft.com/en-us/library/yz2be5wk.aspx

ジョンスキートの著書「C#の深さ」:

は、ここで作業を開始するには良いリンクです。

希望に役立ちます。

1

最初の行は、この新たなオブジェクトへの参照5.整数の箱入りコピーを作成ボクシング操作(、2行目でX

に記憶された基準の値であります広範にはアドレスですが、アドレスと参照は論理的に異なります)は、単に "ldloc、stloc"コピーであるため、Aにコピーされます。このシナリオには1つのオブジェクトしかありません。最初の行に作成されたボックス化されたオブジェクト。

関連する問題