base可以在声明构造函数时,指定最先执行的构造函数。具体格式如下:
其中,base所表示的是该类的基类所声明的、形参与实参最为匹配的另一个实例的构造函数,此基类的构造函数会在执行这个当前声明的构造函数之前执行。
实例45:根据参数的匹配度按顺序执行对应的方法
下面将通过一个实例来说明使用base指定构造函数的具体流程。本实例保存在“光盘:\daima\10”文件夹内,项目名为baseshiyong。实例的功能是根据参数的匹配度按顺序执行对应的方法。实例文件的主要代码如下:
上述实例代码的设计流程如下。
1)定义基类class1。
2)在基类class1内分别定义两种参数类型的构造函数:class1(int n)和class1(string s,int n)。
3)定义class1的派生子类class2。
4)在类class2内class2的构造函数nn(int n)。
5)定义class2类型的对象b。(www.xing528.com)
6)在Main()中分别调用对应的处理方法。
执行后分别调用对应的处理方法以输出显示对应的文本,如图10-4所示。
图10-4 实例执行结果
由图10-6所示结果可以看出,在执行类class2的构造函数class2(int n)前,预先执行了参数最为匹配的基类构造函数class1(int n)。
多学一招
对于C#中的构造函数,其调用的具体时机是最为重要的。要想掌握其调用时机,必须掌握它的如下四个特点。
调用基类上已被其他方法重写的方法。
指定创建派生类实例时应调用的基类构造函数。
基类访问只能在构函数、实例方法或实例属性访问器中进行。
从静态方法中使用base关键字是错误的。
概括起来就是“先执行基类的方法再执行派生类的方法”。base关键字用于从派生类中访问基类成员时使用,即使基类的方法已经在派生类中重写,仍可以使用base关键字调用。而且,在创建派生类的实例时,可以使用base关键字调用基类的构造函数。使用base关键字只能访问基类的构造函数、实例方法和实例属性,不能访问基类的静态方法。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。