Fantacy
calmzeal's code life
posts - 74,comments - 130,trackbacks - 14

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 阅读(13) 评论(0)  编辑 收藏 网摘 所属分类: dotNetCLR

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-11-11 16:12 编辑过
Google站内搜索
[推荐职位]上海盛大网络招聘架构师



China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: