Fantacy
人工智能,智能运营,智能客服,企业知识管理系统(Kmaster,SuperKM)

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;
}

 

 

posted on 2008-10-29 14:34  calmzeal  阅读(251)  评论(0编辑  收藏  举报