C#作为一种纯面向对象的话言,为它编写的整个代码里面到处都离不开对象。一个对象的完整的生命周期是从开始分配空间到初始化,到使用,最后是销毁,使用的资源被回收。要想真正写出面高质量的代码,我们就得对这期间每一个阶段是怎么样一个状态,framework都做了些什么,我们又能够做些什么都要有些了解才行。
一般来说大部分程序员对于一个创建好了的对象怎么使用都是比较清楚的,所以本文也就不想就这一部分做太多的说明,重点就集中开对象的创建和销毁这两个阶段,这也是程序员最容易范错误的阶断。本文首先来讲一讲对象成员的初始化,至于对象的释放和销毁,我想放到另外一篇文章里去讲。虽然本文是以C#2005 为例的,但推而广之,对于其它的基于CLS规范的语言应该也是一样的。
首先我们来看看引用类型的成员初始化过程
我们来看一个例子吧
1class Program
2{
3 static void Main(string[] args)
4 {
5 DriveB d = new DriveB();
6 }
7}
8
9class BaseA
10{
11 static DisplayClass a = new DisplayClass("基类静态成员初始化");
12
13 DisplayClass BaseA_c = new DisplayClass("基类实例变量BaseA_c初始化");
14
15 public BaseA()
16 {
17 Console.WriteLine("基类构造方法被调用");
18 }
19}
20
21class DriveB : BaseA
22{
23 static DisplayClass DriveB_b = new DisplayClass("继承类静态成员DriveB_b初始化");
24
25 //static BaseA DriveB_a = new BaseA();
26
27 DisplayClass DriveB_c = new DisplayClass("继承类实例变量DriveB_c初始化");
28
29 public DriveB()
30 {
31 Console.WriteLine("继承类构造方法被调用");
32 }
33}
34class DisplayClass
35{
36 public DisplayClass(string diplayString)
37 {
38 Console.WriteLine(diplayString);
39 Console.WriteLine();
40 }
41}