• 【CLR Via C#笔记】 类型对象


    1. CLR 在创建一个新对象时,会同时创建它的类型对象(如果该对象的类型对象不存在的话),类型对象包括静态的字段和方法等。


    2. 对象在堆中分配的内存包括实例字段和类型对象指针、同步块索引。类型对象指针指向 类型对象。因此CLR可以通过GetType()运行时查询对象的类型。

    3. 类型构造器:

    internal sealed class SomeRefType
    {
      
    static SomeRefType(){//SomeRefType第一次被访问时执行}
      public static Int32 i = 123;  //相当于在类型构造其中执行 i = 123;
    }

    //值类型也允许定义,但最好不要这么做
    internal struct SomeValType{
       staitc SomeValType(){
         
    //SomeValType第一次被访问时执行
          Console.WriteLine("This never gets displayed");
        }
       
    public Int32 m_x;
    }

    //下面的代码会导致SomeValType的类型构造器不执行
    public static void Main()
    {
      SomeValType[]a 
    = new SomeValType[10];
      a[
    0].m_x = 1;
    }

  • 相关阅读:
    第13周作业集
    软件工程结课作业
    第13次作业--邮箱的正则表达式
    第12次作业--你的生日
    第11次作业
    第10次作业
    找回感觉的练习
    第16周作业
    第15周作业
    第14周作业
  • 原文地址:https://www.cnblogs.com/calmzeal/p/1322117.html
Copyright © 2020-2023  润新知