首页 理论教育 C#编程新手手册:显式接口的成果

C#编程新手手册:显式接口的成果

时间:2023-10-22 理论教育 版权反馈
【摘要】:以显式接口成员实现方式生成的成员叫做显式成员。1)在声明类时,必须在其基类列表中指定一个接口,并且这个接口必须包含一个与该显式接口成员的完全限定名、类型和参数类型完全相同的成员。2)接口成员的完全限定名必须引用声明该成员的接口名称。显式接口成员可以使用this进行访问,也可以直接引用类的成员。

C#编程新手手册:显式接口的成果

当在C#中实现接口时,可以在类中声明一个显式接口成员实现。显式接口成员实现是指在声明方法、属性和索引器时,使用完全限定接口的成员名称作为标识符。以显式接口成员实现方式生成的成员叫做显式成员。

接口成员完全限定名的使用格式如下:

声明的该成员接口名.成员名

要实现一个显式接口成员,必须同时具备如下两个条件。

1)在声明类时,必须在其基类列表中指定一个接口,并且这个接口必须包含一个与该显式接口成员的完全限定名、类型和参数类型完全相同的成员。

2)接口成员的完全限定名必须引用声明该成员的接口名称。

另外,在实现C#接口成员的完全限定名时,不能包含abstract、virtual、override、static等访问修饰符。例如,在下面的代码中分别使用了显式接口成员实现:

978-7-111-36370-5-Part02-357.jpg

显式接口成员属于接口成员,所以不能使用类实例来访问,而只能使用接口实例来访问。并且在使用接口实例来访问时,只能使用该接口成员的名称来引用。显式接口成员可以使用this进行访问,也可以直接引用类的成员。但是在类内不能直接引用显式接口成员实现,而需要使用this进行显式转换成接口实例后再进行引用。

实例48:实现显式接口成员

下面将通过实例来说明实现显式接口成员的具体流程。本实例保存在“光盘:\daima\10”文件夹内,项目名为xianshijiekou。实例的功能是根据定义的接口,在类内执行对应的处理方法。实例文件的主要代码如下:

978-7-111-36370-5-Part02-358.jpg

978-7-111-36370-5-Part02-359.jpg

上述实例代码的设计流程如下。

1)分别定义接口mm和nn,并在其中分别定义处理方法Save()。(www.xing528.com)

2)定义类aa,设置其基接口为mm和nn。

3)在类aa内分别使用显式接口成员实现mm.Save和nn.Save。

4)在类aa内声明处理方法Save()。

5)定义类aa的实例对象doc,并调用它的处理方法Save()。

6)分别定义接口实例对象db和file,并调用它们各自的处理方法Save()。

执行后将分别调用对应的处理方法输出对应的方法类型,如图10-7所示。

978-7-111-36370-5-Part02-360.jpg

图10-7 实例执行结果

从图10-7所示的执行结果可以看出,使用显式接口成员实现可以使类aa内的三个处理方法Save()独立运行,各自完成它们的功能,而不会造成冲突。

多学一招

在使用显示接口时必须注意如下两点。

1)显式接口成员属于接口成员,所以不能使用类实例来访问,而只能使用接口实例来访问。并且在使用接口实例访问时,只能使用该接口成员的名称来引用。

2)显式接口成员可以使用this进行访问,也可以直接引用类的成员。但是在类内不能直接引用显式接口成员实现,而需要使用this进行显式转换成接口实例后再进行引用。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈