Avatar ·

Implizite und explizite Implementierung von Interfaces in C#: Wann und welche verwenden?

Hallo zusammen! Ich habe gerade angefangen, C# zu lernen, und bin auf das Thema Interfaces gestoßen. An sich ist alles klar: Ein Interface ist ein Vertrag, die Klasse implementiert ihn. Aber dann habe ich gesehen, dass Interfaces auf zwei Arten implementiert werden können: implizit (implicit) und explizit (explicit). Und ich bin verwirrt. Hier ist ein Beispiel:
public interface IWorker
{
    void Work();
}

public class Employee : IWorker
{
    // Implizite Implementierung
    public void Work()
    {
        Console.WriteLine("Employee works");
    }
}
Das funktioniert. Aber ich habe gelesen, dass man es auch so machen kann:
public class Manager : IWorker
{
    // Explizite Implementierung
    void IWorker.Work()
    {
        Console.WriteLine("Manager works");
    }
}
Und jetzt, wenn ich schreibe:
Manager m = new Manager();
m.Wor