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. Tout semble 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.
Voici un exemple :
public interface IWorker
{
void Work();
}
public class Employee : IWorker
{
// Implémentation implicite
public void Work()
{
Console.WriteLine("Employee works");
}
}
Tout fonctionne. Mais j'ai lu qu'on peut aussi faire comme ça :
public class Manager : IWorker
{
// Implémentation explicite
void IWorker.Work()
{
Console.WriteLine("Manager works");
}
}
Et maintenant, si j'écris :
Manager m = new Manager();
m.Wor