Podczas jednego z moich badań nad zawiłościami języka C # natknąłem się na interesujący fragment dotyczący jawnego wdrożenia interfejsu.
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.
Różnica między zezwalaniem na użycie object.method()
lub wymaganiem rzutu ((Interface)object).method()
wydaje mi się niedorzecznym zaciemnieniem dla moich niedoświadczonych oczu. Tekst zauważyć, że ukryje metodę z IntelliSense na poziomie obiektu, ale dlaczego ty chcesz zrobić, że jeśli to nie było konieczne, aby uniknąć konfliktów nazw?