【问题标题】:Where's the ValueType stored when CLR initialize the data structure to store them当 CLR 初始化数据结构来存储它们时,ValueType 存储在哪里
【发布时间】:2013-04-01 09:24:09
【问题描述】:

我知道存储在堆栈中的值类型实例和存储在堆中的引用类型实例。但是,CLR确保所有定义Type的程序集都加载完毕后,会创建一些数据结构来存储类型对象,引用类型对象存储在堆中,值类型对象存储在哪里?

【问题讨论】:

    标签: .net clr


    【解决方案1】:

    不同类型的Type对象是引用类型,即Type是一个类,所以它们都存储在堆上。


    请注意,值类型只有在方法中是局部变量时才会存储在堆栈中。如果它们是某个类的成员,它们将作为该类实例的一部分存储在堆中。

    【讨论】:

      【解决方案2】:

      作为引用类型对象成员的值类型对象将存储在堆中。

      This Thread会帮助你了解更多。

      【讨论】:

      • 我知道这一点,但我不是指值类型对象或引用类型对象,我是指值类型和引用类型本身。在实例化一个类之前,类本身会被存储在一个由 CLR 创建并在堆中分配的数据结构中,但是值类型存储在哪里?
      猜你喜欢
      • 2023-03-15
      • 2010-10-03
      • 2015-07-18
      • 1970-01-01
      • 2023-01-21
      • 1970-01-01
      • 1970-01-01
      • 2014-01-19
      • 2020-10-04
      相关资源
      最近更新 更多