作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如标题所示,它是什么以及它与 MethodTable 有何不同?
最佳答案
mdToken 是元数据标记,或者或多或少是元数据表中的行 ID(int 的一部分标识它所属的表,另一部分标识该表中的行)。
有两种类型的 token - 内部和外部。
内部 token 比外部 token 小,仅使用 4 个字节:3 个字节用于行 id,1 个字节用于表 id。 (我不确定 x64 的这些大小是否已更改,但您明白了)
示例:0x06000000 表示方法表中的第一行(从零开始)。
外部标记(或编码标记)更大,适用于一系列表,而不是特定表。有几种不同的编码标记类型,它们具有已知的模式,您必须了解这些模式才能理解它们的编码值。例如,HasCustomAttribute 标记可以是 19 个元数据表中任何一个的标记(因为属性可以附加到代码的许多不同部分)。编码标记的一部分是表的 id,也称为标记(但用于保持这部分的位宽因每个而不同 - 因此是已知模式),其余部分留给行 id。外部 token 的大小可能会有所不同 - 这有助于在行数较小时保持较小的大小。
关于debugging - 什么是 mdToken,它与 MethodTable 有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7158836/
如标题所示,它是什么以及它与 MethodTable 有何不同? 最佳答案 mdToken 是元数据标记,或者或多或少是元数据表中的行 ID(int 的一部分标识它所属的表,另一部分标识该表中的行)。
我是一名优秀的程序员,十分优秀!