您的位置:首页 > 编程语言 > C#

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

2008-10-29 14:34 477 查看
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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: