【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;
}
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;
}
相关文章推荐
- CLR Via C# 学习笔记(1) 基元类型 值类型 引用类型
- CLR via C#学习笔记---类型
- 带着问题读CLR via C#(笔记二)类型基础
- CLR via C# - 对象创建和类型转换
- <NET CLR via c# 第4版>笔记 第19章 可空值类型
- 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_对象的相等性和同一性
- CLR via C#深解笔记三 - 基元类型、引用类型和值类型 | 类型和成员基础 | 常量和字段
- 《CLR Via C# 第3版》笔记之(八) - 类型的转换构造器和方法
- CLR Via C# 学习笔记(1) 基元类型 值类型 引用类型
- 《CLR via C#》笔记——类型基础
- 《CLR Via C# 第3版》笔记之(五) - C#中的伪Union类型
- <NET CLR via c# 第4版>笔记 第5章 基元类型、引用类型和值类型
- 《CLR via C#》笔记——类型基础(4)
- [CLR via C#]4. 类型基础及类型、对象、栈和堆运行时的相互联系
- <NET CLR via c# 第4版>笔记 第6章 类型和成员基础
- 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_类型的各种成员
- [CLR via C#]4. 类型基础及类型、对象、栈和堆运行时的相互联系
- 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_类型转换
- [学习与积累] CLR via C#(第三版)笔记——基本类型(字符串一)
- CLR Via C# 学习笔记(1) 基元类型 值类型 引用类型