.NET Core 实战 [No.84] 显式实现接口

显示实现接口就是在实现接口的成员前面加上接口的名称。这种方法可以有效解决接口成员冲突问题。

类是可以继承多个接口的,当接口中有方法声明相同时,就需要显示的实现接口。

void IDownloader.Start()
{
}
  

调用时也需要转换成对应的接口类型才可以调用,使用实现类直接调用会报错。

示例代码

IDownloader.cs

interface IDownloader
{
    void Start();
}
  

IUploader.cs

interface IUploader
{
    void Start();
}
  

NetworkManager.cs

class NetworkManager : IDownloader, IUploader
{
    void IDownloader.Start()
    {
        Console.WriteLine("正在下载...");
    }

    void IUploader.Start()
    {
        Console.WriteLine("正在上传...");
    }
}
  

使用示例:

var manager = new NetworkManager();
(manager as IDownloader).Start(); // 正在下载...
(manager as IUploader).Start(); // 正在上传...
//manager.Start(); // 该语句报错:未包含 "Start" 的定义
  

参考:《.NET Core 实战:手把手教你掌握 380 个精彩案例》 – 周家安 著