[英]What is an “object based on value types”?
我正在MSDN上閱讀關於new
運算符的這篇文章:
https://msdn.microsoft.com/en-us/library/fa0ab757(v=vs.120).aspx
我不明白這一段:
在堆棧上創建諸如結構的值類型對象,而在堆上創建諸如類的引用類型對象。 兩種類型的對象都會自動銷毀,但基於值類型的對象在超出范圍時會被銷毀,而基於引用類型的對象會在刪除最后一次引用后的指定時間內銷毀 。
粗體文字究竟是什么意思? 什么是“基於價值/參考類型的對象”? 這是一個只包含值成員/僅引用成員的對象嗎?
編輯我不認為'什么是堆/堆'是適當的重復。 雖然該鏈接線程中的所選答案信息豐富,但我仍然清楚地理解兩者之間的差異 - 就像“堆棧存儲值類型,堆存儲引用類型”一樣。 但我的印象是'值類型'會是int
或char
類的東西; 我不知道一個struct
被包括在,或一個struct
可以被定義為“基於值類型的對象”。
你過分思考它:
struct
class
老實說,我不知道為什么他們在段落中改變了術語; 我認為這會更清楚,也是正確的:
在堆棧上創建諸如結構的值類型對象,而在堆上創建諸如類的引用類型對象。 兩種類型的對象都會自動銷毀,但是值類型對象在超出范圍時會被銷毀,而引用類型對象在刪除最后一次引用后的指定時間內會被銷毀。
也許有一些角落案例,這個解釋沒有涵蓋,但對大多數情況應該足夠好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.