相关疑难解决方法(0)

ValueType.GetType()如何确定结构的类型?

对于引用类型,对象的内存布局是

| Type Object pointer|
|    Sync Block      |
|  Instance fields...|
Run Code Online (Sandbox Code Playgroud)

对于值类型,对象布局似乎是

|  Instance fields...|
Run Code Online (Sandbox Code Playgroud)

对于引用类型,GetType表示从"类型对象指针"中查找对象.给定引用类型对象的所有对象都指向同一类型对象(也有方法表)

对于值类型,此指针不可用.那么GetType()如何工作?

我查了一下谷歌,我发现了这个片段..这有点模糊.有人可以详细说明吗?

解决方案是存储值的位置可以仅存储特定类型的值.这由验证者保证. 资源

.net c# types

28
推荐指数
2
解决办法
4898
查看次数

虚方法表

在讨论密封类时,经常提到术语"虚函数表".究竟是什么?我刚才读到一个方法表(我不记得这个目的的目的)和谷歌/搜索这里带来了C++相关的结果.

谢谢

.net c# virtual vtable

18
推荐指数
2
解决办法
2万
查看次数

值类型有 Type 对象吗?

我确定标题是否具有解释性,但我需要一些帮助来理解这个概念。

我们有类(引用类型),它具有与 Type 对象关联的方法表。除了方法表之外,类型对象还包含所有静态字段、类型 obj 指针和同步块索引。

在引用类型的实例上调用方法时,CLR 会引用此方法表。

方法表包含用于更改实例字段状态的特定方法的 IL。

类似地,我们可以为结构(值类型)定义方法。

在运行时,当在值类型上调用方法时,CLR 从何处引用在值类型的实例上调用的方法的 IL。

struct A
{
    // for Immutability of value type
    public readonly int a;

    public void MethodOnValueType()
    {
        // Some code here
    }
}
Run Code Online (Sandbox Code Playgroud)

CLR 在哪里引用查找名为“MethodOnValueType”的方法的 IL?

托管堆中的值类型是否有任何类型对象?

我确定引用类型的情况,但对值类型感到困惑。

谢谢。

.net c# clr

5
推荐指数
1
解决办法
862
查看次数

标签 统计

.net ×3

c# ×3

clr ×1

types ×1

virtual ×1

vtable ×1