簡體   English   中英

.NET 中值類型中的引用類型

[英]Reference type inside Value type in .NET

C#中結構是值類型,字符串是引用類型。 我知道它們的內存分配和映射的區別,但我不確定 C# 引用類型是如何存儲在值類型中的。 假設我在以下結構中有一個字符串。 如果結構中的引用類型是在堆上創建的,那么當結構作為參數傳遞給函數時,編譯器如何管理堆上的數據。

字符串是在堆棧還是堆上創建的?

如果我將 Struct Point 的對象傳遞給函數,.net 如何管理 Struct 內的PointC對象。 如果 PointC 是在堆上創建的,那么將 stuct 傳遞給函數將具有與類相同的記憶?

   public class PointC
    {
      ...
      ...
    }
   public struct Point
    {
      PointC obj;
    }

引用將在堆棧上創建(或者更具體地說,它將是結構所在的位置)。

該引用將具有默認值 (null),因此在結構構造時不會創建 String 對象。

當您通過字符串構造函數分配字符串時,將在堆中創建字符串對象和字符串緩沖區。

暫無
暫無

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

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