C#托管堆对象实例包含内容分析
2014-09-17 10:17
1821 查看
本文以实例形式分析了C#托管堆对象实例包含的内容,有助于进一步了解C#程序设计中的托管对象。分享给大家供大家参考。具体分析如下:
通常来说,每个托管堆上的对象实例除了包含本身的值外,还包括:
① Type Object Ponter: 指向Type对象实例。如果是同类型的对象实例,就指向同一个Type对象实例。
② Sync Block Index:在多线程情况下用来控制同步
如下实例所示:
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Cow cow1 = new Cow(); cow1.mooCount = 1; Cow cow2 = new Cow(); cow2.mooCount = 2; Type t1 = cow1.GetType(); Type t2 = cow2.GetType(); Console.WriteLine(t1.FullName); Console.WriteLine(t2.FullName); } } public class Cow { public int mooCount; } }
运行结果:
ConsoleApplication1.Cow
ConsoleApplication1.Cow
○ 调用对象实例的GetType方法,可以获取到Type类型对象,这就是所谓的反射
○ 以上的cow1和cow2的类型都是Cow,所以这2个实例指向同一个Type对象
用图形表示的话如下图所示:
另外,当值类型调用GetType方法时,会在托管堆上创建box,并有Type Object Pinter。
希望本文所述对大家C#程序设计的学习有所帮助。
您可能感兴趣的文章:
相关文章推荐
- C#托管堆对象实例包含什么
- Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库 自定义日志记录功能,按日记录,很方便 C#常量和字段以及各种方法的语法总结 类型,对象,线程栈,托管堆在运行时的关系,以及clr如何调用静态方法,实例方法,和虚方法 asp.net webapi 自定义身份验证
- Tomcat处理HTTP请求源码分析--包含jsp内置对象的实例过程
- 实例分析C#的对象分配,自己猜想
- C#编程实现对象与JSON串互相转换实例分析
- c#对象初始化顺序实例分析
- C#清理非托管对象实例分析
- Tomcat处理HTTP请求源码分析--包含jsp内置对象的实例过程
- CLR via C# 读书笔记(四).net平台对象在托管堆上的内存分配
- c# 在网页中根据xsl输出xml的内容的分析
- 通过实例谈C#对象对内存的使用
- 动态库中输出STL类的实例和类中包含STL对象
- 不传任何参数得到窗体对象实例(C#)
- 发布一个C#+ADOMD.NET实现查看分析服务数据库信息的类对象
- c# 中基类变量指向派生类对象的实例化
- Javascript文档对象模型(DOM)实例分析
- C#中的对象(类的实例)和引用变量(引用实例的那个变量)问题讨论
- 关于c# 未将对象引用设置到对象实例的问题(不解。。。)是不是数据库的问题....
- C#:深入分析ADO.NET中的DataSet对象
- c#(SVG)无刷新,动态执行Javascript处理SVG对象:包含SVG的 页面.cs源码 (二)