Au cours d'une de mes études sur les subtilités de C #, je suis tombé sur un passage intéressant concernant l'implémentation d'interface explicite.
While this syntax is quite helpful when you need to resolve name clashes,
you can use explicit interface implementation simply to hide more "advanced"
members from the object level.
La différence entre autoriser l'utilisation object.method()
ou exiger le moulage ((Interface)object).method()
semble être une obscénité mesquine à mes yeux inexpérimentés. Le texte a noté que ce cachera la méthode de IntelliSense au niveau de l' objet, mais pourquoi voulez - vous voulez faire que s'il n'a pas été nécessaire pour éviter les conflits de nom?