第四章 类型基础
Ø 4.1 所有类型的基类型: System.Object
每个类型对会继承自System.Object。
使用new运算符创建对象时所执行的工作:
1. 分配内存 从托管堆中分配指定类型所需数量的字节来作为存储其对象的内存空间。
2. 初始化对象的附加成员,指向类型方法表的指针和SyncBlockIndex
3. 传入new操作符中指定的参数,调用类型的实例构造器
在new完成所有这些操作后,它将返回一个指向新创建对象的引用。
CLR中无法显式释放对象占用的内存。
Ø 4.2 类型转换
CLR允许将对象转换为其原来的类型或者它的任何一个基类型。
Ø 4.2.1 使用is和as操作符转型
is可以检查对象是否和指定的类型兼容,并返回判断结果:true或false
is运算符永远不会抛出异常
as操作符所做的和通常的转换类型操作没什么不同。如果对象不能顺利转型as操作符的结果将为null
Ø 4.3 命名空间与程序集
MSCorLab.dll程序集包含了所有.NET框架类库中定义的核心内容
我们只能用完全限定名来区分两个同名的类型
C#提供了另外一种形式的using指示符允许我们为一个类型或命名空间创建另外的别名。
命名空间和程序集并非必然相关,多个属于同一命名空间的类型可能被实现在多个程序集中。一个程序集中也可以包含位于不同命名空间中的类型。