2011-01-19 104 views
1

在我之前的問題中(關於向ArrayList添加項目)其中一個海報寫道「引用已經是一個對象」 - 它是如何表示的?我不明白。我想引用就是我可以通過對象的地址:引用類型是一個對象嗎?

object X=5; 

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

還與ArrayList的例子,它實際上賣場再次references..but我得到了與評論「System.Object的」引用類型混淆。這是什麼意思?

我會很感激簡單的例子。我理解值類型和ref.types之間的區別,但這是我無法弄清的,儘管我知道它的工作原理。

+2

你到底在問什麼? – 2011-01-19 19:10:05

回答

4

你在你的代碼中做了什麼取得了一個值類型和「裝箱」它,所以現在它是一個包含值「5」的堆的引用類型。我建議你通過試圖瞭解價值/參考類型 C#,易變性/不變性拳擊/拆箱的理解。

這裏有一個很好的鏈接,讓你開始:「在深度C#」 http://msdn.microsoft.com/en-us/library/yz2be5wk.aspx

喬恩斯基特的書也做這個(第2.3.4節)一份好工作。

希望有所幫助。

1

的第一行是一個創建盒裝複製整數5到這個新的對象的引用的被存儲在X

在第二行中,基準的值(裝箱操作這是廣泛的地址,但地址和引用邏輯上不同)被複制到A中,因爲這只是一個「ldloc,stloc」副本。在這種情況下只有一個對象;在第一行創建的盒裝對象。

相關問題