栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

C#托管堆对象实例包含内容分析

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#托管堆对象实例包含内容分析

本文以实例形式分析了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#程序设计的学习有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/126042.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号