我是一名java程序员,我知道java对象存储在堆中。只是为了好奇才想把对象放在c#中。对象驻留在C#中?
4
A
回答
7
- 对于引用类型:在堆上
- 对于值类型:堆栈为局部变量和方法参数上,或在堆上用于参考类型的成员
0
的对象被存储在堆在C#也是如此。
5
C#语言没有指定对象或值的存储位置。它只是定义了引用类型和值类型的语义。
Microsoft .NET CLR存储堆栈上的本地变量以及堆上的引用类型(对象)实例和非本地值类型的实例所包含的值(值类型的实例)。但是,如前所述,只要符合C#语言规范定义的值和引用语义,C#语言的其他实现就可以随意存储它们所希望的内容。
1
详细的解释,
C#堆在.NET(荷兰国际集团)与堆栈(荷兰国际集团):第I部分 马修·科克伦1月14日,存放在托管堆中2006年http://www.c-sharpcorner.com/UploadFile/rmcochran/csharp_memory01122006130034PM/csharp_memory.aspx
0
引用类型。
默认存储在堆栈上的值类型。
值类型也可以存储在堆在几种情况:
- 在拳击(铸造值类型的接口,向下转换值类型为对象等)。
- 如果值类型是参考类型的成员
- 如果值类型在闭合使用
相关问题
- 1. 访问驻留在插件中的自定义对象dll
- 2. 调用驻留在字典中的对象的方法?
- 3. 保留对象在objective-c
- 4. C++对象保留?
- 5. MonoDevelop.Macinterop驻留在哪里?
- 6. nullptr_t驻留在哪里?
- 7. 找出图像驻留在
- 8. 不能从驻留在包
- 9. 在回传中保留c#对象
- 10. 的Cocos2D保留在C#中的对象
- 11. 如何使对象驻留到函数调用?
- 12. 如何从它驻留的COM对象获取HMODULE?
- 13. 在rails中的子驻留3
- 14. 设置ItemsControl驻留在UserControl中的ItemTemplate
- 15. EJB客户端驻留在哪里,EJB容器驻留在应用服务器
- 16. 可以/应该C++ #pragma预处理器驻留在函数中
- 17. C++调用驻留在多个类中的函数
- 18. C++ - 如何内联一个驻留在.lib中的函数?
- 19. 如果给出SQL Server对象的列表,如何确定每个对象驻留在哪个数据库中?
- 20. PHP:获得驻留文件
- 21. 如何告诉ELMAH其DB对象驻留在新的模式下?
- 22. 应该在Django的许多一对多“的关系驻留在
- 23. Wheren的任务载体驻留在Linux?
- 24. 获取一个ComboBoxItem驻留在
- 25. 光标驻留在editText位置为零
- 26. E L K和filebeat驻留在哪里
- 27. Blob数据驻留在哪里?
- 28. 更改驻留在循环外从环
- 29. UnityBootstrapper RegisterTypesIfMissing当类型驻留在
- 30. Pester的Invoke-Pester驻留在哪里?
有一些边缘例;迭代器块中的局部变量或捕获的变量实际上存储在堆中。同样,堆上的*本身*(直接间接)堆中的成员也在堆中。当然,盒装值也在堆上。 – 2010-01-21 16:20:54
在http://www.kirupa.com/net/stacks_heaps_pg1.htm中提供了一个很好的图形视图 – balalakshmi 2010-01-21 16:22:17