簡體   English   中英

什么是“基於價值類型的對象”?

[英]What is an “object based on value types”?

我正在MSDN上閱讀關於new運算符的這篇文章:

https://msdn.microsoft.com/en-us/library/fa0ab757(v=vs.120).aspx

我不明白這一段:

在堆棧上創建諸如結構的值類型對象,而在堆上創建諸如類的引用類型對象。 兩種類型的對象都會自動銷毀,但基於值類型的對象在超出范圍時會被銷毀,而基於引用類型的對象會在刪除最后一次引用后的指定時間內銷毀

粗體文字究竟是什么意思? 什么是“基於價值/參考類型的對象”? 這是一個包含值成員/僅引用成員的對象嗎?

編輯我不認為'什么是堆/堆'是適當的重復。 雖然該鏈接線程中的所選答案信息豐富,但我仍然清楚地理解兩者之間的差異 - 就像“堆棧存儲值類型,堆存儲引用類型”一樣。 但我的印象是'值類型'會是intchar類的東西; 我不知道一個struct被包括在,或一個struct可以被定義為“基於值類型的對象”。

你過分思考它:

  • “基於值類型的對象”通常表示struct
  • “基於引用類型的對象”通常表示class

老實說,我不知道為什么他們在段落中改變了術語; 我認為這會更清楚,也是正確的:

在堆棧上創建諸如結構的值類型對象,而在堆上創建諸如類的引用類型對象。 兩種類型的對象都會自動銷毀,但是值類型對象在超出范圍時會被銷毀,而引用類型對象在刪除最后一次引用后的指定時間內會被銷毀。

也許有一些角落案例,這個解釋沒有涵蓋,但對大多數情況應該足夠好。

暫無
暫無

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

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