簡體   English   中英

引用類型是對象?

[英]Reference type being an object?

在我之前的問題中(關於向ArrayList添加項目),其中一位張貼者寫道:“引用已經是一個對象” –它的含義是什么? 我不明白。 我以為引用只是我可以傳遞的對象的地址:

object X=5;

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

同樣在ArrayList示例中,它實際上存儲了引用。但是,我再次對注釋“ System.Object”引用類型感到困惑。 這是什么意思?

我將不勝感激簡單的例子。 我確實了解值類型和ref.types之間的區別,但是我無法完全理解這一點,盡管我知道它是可行的。

您在代碼中完成的操作將采用值類型並將其“裝箱”,因此現在它是堆上的引用類型,其中包含值“ 5”。 我建議您首先嘗試了解C#中的值/引用類型可變性/不可變性裝箱/拆箱

這是一個入門的好鏈接: http : //msdn.microsoft.com/zh-cn/library/yz2be5wk.aspx

喬恩·斯基特(Jon Skeet)的著作“ C#in depth”在這方面也做得很好(第2.3.4節)。

希望能有所幫助。

第一行是裝箱操作,它將創建整數5的裝箱副本 。對此新對象的引用存儲在X中

在第二行中, 引用 (大致是地址,但是地址和引用在邏輯上是不同的)被復制到A中,因為這只是“ ldloc,stloc”副本。 在這種情況下,只有一個對象。 在第一行中創建的框對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM