gpt4 book ai didi

.net - 什么是堆中的类型对象

转载 作者:行者123 更新时间:2023-12-04 18:12:41 24 4
gpt4 key购买 nike

我知道在 Heap 中创建对象时,它们还有额外的两个字段:

  • 同步区块索引
  • 类型对象指针

  • 所以我想知道Type Object是什么时候在Heap内存中创建的,它持有什么样的数据?它只代表Type的元数据?

    我一直无法找到更多细节。

    最佳答案

    Type 对象还包含支持该类型上的任何静态字段的字节以及一个方法表,其中每个方法在该类型中定义了一个条目。

    如果方法至少执行过一次,则方法表中的每个条目都指向 JIT 编译的 native 代码。

    类型对象是在第一次实例化类型或第一次引用静态类型成员时创建的。

    我强烈建议您购买一本 Jeffrey Richter 的书,CLR via C#如果您想真正深入了解 CLR 的作用。第 4 章中标题为“运行时如何关联”的部分详细介绍了堆上的 .NET 类型分配过程。

    May 2005 edition of MSDN magazine有一篇题为“JIT and Run: Drill Into .NET Framework Internals to See How the CLR Creates Runtime Objects”的文章也提供了一些很好的信息,特别是关于 Type Fundamentals 的部分和 MethodTable .

    关于.net - 什么是堆中的类型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10184030/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com