C#学习笔记02(二):构造函数的执行序列_c

其他范文 时间:2020-02-28 23:34:34 收藏本文下载本文
【www.daodoc.com - 其他范文】

C#学习笔记02(二):构造函数的执行序列由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c”。

任何构造函数都可以进行配置,以便在执行自己的代码前调用其它构造函数。

我们首先看看在创建类的实例时会发生什么情况。为了实例化派生的类,必须实例化它的基类。而要实例化这个基类,又必须实例化这个基类的基类,这样一直实例化到System.Object为止。结果是无论使用什么构造函数实例化一个类,总是要先调用System.Object.Object()。

如果对一个类使用非默认的构造函数,默认的情况是在其基类上使用匹配于这个构造函数签名的构造函数。如果没有找到这样的构造函数,就使用基类的默认构造函数(根类System.Object总是要使用默认的构造函数,因为这个类没有非默认的构造函数)。

我们以下面这个小代码段例子作一些说明:

}

如果以下面的方式实例化MyDerivedCla:

MyDerivedCla myObj = new MyDerivedCla();

则发生下面的一系列事件:

1.执行System.Object.Object()构造函数。public MyDerivedCla(int i, int j){ }public MyDerivedCla(int i){ } public cla MyDerivedCla : MyBaseCla {public MyDerivedCla(){ }}public MyBaseCla(int i){ } public cla MyBaseCla {public MyBaseCla(){ }

2.执行MyBaseCla.MyBaseCla()构造函数。

3.执行MyDerivedCla.MyDerivedCla()构造函数。

如果使用下面的语句:

MyDerivedCla myObj = new MyDerivedCla(4);

则发生下面的—系列事件:

1.执行System.Object.Object()构造函数。

2.执行MyBaseCla.MyBaseCla(int i)构造函数。

3.执行MyDerivedCla.MyDerivedCla(int i)构造函数。

如果使用下面的语句:

MyDerivedCla myObj = new MyDerivedCla(4,8);

则发生下面的—系列事件:

1.执行System.Object.Object()构造函数。

2.执行MyBaseCla.MyBaseCla()构造函数。

3.执行MyDerivedCla.MyDerivedCla(int i, int j)构造函数。

有时需要对发生的事件进行更多的控制。例如,在上面的实例化范例中,需要有下面的事件序列:

1.执行System.Object.Object()构造函数。

2.执行MyBaseCla.MyBaseCla(int i)构造函数。

3.执行MyDerivedCla.MyDerivedCla(int i, int j)构造函数。

使用这个序列可以在编写MyBaseCla(int i)中使用int i参数的代码,即

MyDerivedCla(int i, int j)构造函数要做的工作比较少,只需要处理int j参数(假定int i参数在两种情况下有相同的含义)。我们仅需指定在派生类的构造函数定义中所使用的基类的构造函数,如下所示:

public cla MyDerivedCla : MyBaseCla {}

其中,base关键字指定.NET实例化过程,以使用基类中匹配指定签名的构造函数。这个例子中使用一个int参数,所以在实例化序列中应调用MyBaseCla(int i)。

同时我们也可以使用这个关键字指定基类构造函数的字面值。…… public MyDerivedCla(int i, int j): base(i){ }

public cla MyDerivedCla : MyBaseCla {}

这段代码将执行以下序列: public MyDerivedCla(): base(5){ } ……

1.执行System.Object.Object()构造函数。

2.执行MyBaseCla.MyBaseCla(int i)构造函数。

3.执行MyDerivedCla.MyDerivedCla()构造函数。

下面我们介绍另一个关键字this。这个关键字指定在调用指定的构造函数前,.NET实例化过程对当前类使用非默认的构造函数。

public cla MyDerivedCla : MyBaseCla {}

这段代码将执行以下序列:

1.执行System.Object.Object()构造函数。

2.执行MyBaseCla.MyBaseCla(int i)构造函数。

3.执行MyDerivedCla.MyDerivedCla(int i,int j)构造函数。

4.执行MyDerivedCla.MyDerivedCla()构造函数。

唯一的限制是使用this或base关键字只能指定一个构造函数。但是如上所示,这并不是一个很严厉的限制,按照上述方式仍可以构造相当复杂的执行序列。

public MyDerivedCla(): this(5,6){ } …… public MyDerivedCla(int i, int j): base(i){ }

下载C#学习笔记02(二):构造函数的执行序列word格式文档
下载C#学习笔记02(二):构造函数的执行序列.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

相关专题 c 序列 函数 学习笔记
    热门文章
      整站推荐
        点击下载本文