Avatar ·

C#中接口的隐式与显式实现:何时以及如何使用?

大家好!我刚开始学习C#,遇到了接口这个话题。看起来一切都很好理解:接口是一种契约,类来实现它。但我发现接口可以通过两种方式实现:隐式(implicit)和显式(explicit)。这让我感到困惑。 下面是一个例子:
public interface IWorker
{
    void Work();
}

public class Employee : IWorker
{
    // 隐式实现
    public void Work()
    {
        Console.WriteLine("Employee works");
    }
}
一切正常。但我读到也可以这样做:
public class Manager : IWorker
{
    // 显式实现
    void IWorker.Work()
    {
        Console.WriteLine("Manager works");
    }
}
现在,如果我写:
Manager m = new Manager();
m.Work(); // 编译错误!
这无法编译!那显式实现有什么用?什么时候该用它?除了语法之外,到底有什么区别?希望能得到详细解释。