内存管理的值和引用类型

我已经搜索了reference type vs value type in C#reference type vs value type in C#以及堆栈和堆中数据分配的主题。

从这些来源,stackoverflow问题和这篇文章,我做出这样的结论:

  • 引用类型的值存储在堆中,并且此值的地址存储在堆栈中
  • 值类型存储在堆栈中
  • 运行函数的局部变量存储在堆栈中
  • 全局变量存储在堆上
  • 我有几个问题:

  • 如果我有一个全局变量,它是一个值类型。 它将被存储在哪里?
  • 如果我有一个本地引用类型变量。 它将被存储在哪里?
  • 为什么建议写这个:

    public class OurClass()
    {
       public ClassA objA;  
       public OurClass()
       {
        objA = new ClassA();
       }
    }
    
  • 而不是写作

     public class OurClass()
        {
           public ClassA objA = new ClassA(); 
           public OurClass()
           {
    
           }
        }
    

    它与分配表现有关系吗?

    谢谢,

    链接地址: http://www.djcxy.com/p/82601.html

    上一篇: memory management for a value and reference type

    下一篇: how variables are stored on stack?