Avatar ·

Implémentation implicite et explicite des interfaces en C# : quand et laquelle utiliser ?

Bonjour à tous ! Je viens de commencer à apprendre C# et je suis tombé sur le sujet des interfaces. Apparemment, tout est clair : une interface est un contrat, la classe l'implémente. Mais j'ai vu que les interfaces peuvent être implémentées de deux manières : implicitement (implicit) et explicitement (explicit). Et je suis confus.\n\nVoici un exemple :\n
public interface IWorker\n{\n    void Work();\n}\n\npublic class Employee : IWorker\n{\n    // Implémentation implicite\n    public void Work()\n    {\n        Console.WriteLine("Employee works");\n    }\n}
\nTout fonctionne. Mais j'ai lu qu'on peut aussi faire ceci :\n
public class Manager : IWorker\n{\n    // Implémentation explicite\n    void IWorker.Work()\n    {\n        Console.WriteLine("Manager works");\n    }\n}
\nEt maintenant, si j'écris :\n
Manager m = new Manager();\nm.Wor