开发者社区> 问答> 正文

.net托管内存如何处理对象内部的值类型?

public class MyClass
{
    public int Age;
    public int ID;
}

public void MyMethod() 
{
    MyClass m = new MyClass();
    int newID;
}

象中的值类型是否存在于堆栈或堆中? 装箱/拆箱对象中的值类型是否值得关注? 是否有关于此主题的详细但可理解的资源?

展开
收起
游客ufivfoddcd53c 2020-01-03 21:27:49 972 0
1 条回答
写回答
取消 提交回答
  • 结构类型的变量或其他存储位置是该类型的公共和私有实例字段的集合。给定

    struct Foo {public int x,y; int z;}
    
    

    声明Foo bar;将导致bar.x,bar.y和bar.z存储在要存储的任何bar位置。bar从存储布局的角度来看,将这样的声明添加到类将等同于添加三个int字段。事实上,如果一个从来没有做过任何bar除了访问它的领域,领域bar将表现一样将三个字段bar_x,bar_y以及bar_cantaccessthis_z[访问的最后一个需要做的事情bar除了访问它的领域,但它会占用空间是否是否曾经真正用于任何东西]。

    将结构类型的存储位置识别为字段的聚集是了解结构的第一步。试图将它们视为持有某种对象似乎“比较简单”,但与它们的实际工作方式不匹配。

    2020-01-03 21:28:42
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
内存取证与IaaS云平台恶意行 为的安全监控 立即下载
云服务器ECS内存增强型实例re6全新发布 立即下载
对象的生命期管理 立即下载

相关实验场景

更多