我就是手贱
本文补充 C# 显式接口成员实现的用法,说明当一个类实现多个包含同名方法的接口时,如何分别提供实现,以及这些成员为何不能直接通过类实例访问。文章通过代码示例演示使用接口引用和显式类型转换调用对应方法,帮助处理接口成员重名并厘清接口与类的访问方式。
在这篇文章里,曾经讲解过C#接口的基本概念。掌握这些基本概念后,本文将补充一个进阶内容。
显式接口成员实现
- 该功能用于为同一个类中实现的不同接口创建不同的方法(方法名称相同)
- 语法:
interface I1{void Method(string s);}
interface I2{void Method(string s);}
class MyClass:I1,I2
...
void I1.Method(string s){...}
void I2.Method(string s){...}
- 当以上面的方式来创建类中的方法时,仅能通过接口引用访问该方法,无法通过类的引用来访问,即使是同一个类中的方法也不行
- 针对以上问题,可以通过强制转换来进行,举个例子:
((I1)MyClass1).Method
版权声明
作者:Sam Hou
原文链接:https://blog.samhou.moe/csharp-advanced-interfaces/
本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请保留此版权声明,注明来源 SamHou's Blog!