What are good reasons to use explicit interface implementation for the sole purpose of hiding members?
- by Nathanus
During one of my studies into the intricacies of C#, I came across an interesting passage concerning explicit interface implementation.
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.
The difference between allowing the use of object.method() or requiring the casting of ((Interface)object).method() seems like mean-spirited obfuscation to my inexperienced eyes. The text noted that this will hide the method from Intellisense at the object level, but why would you want to do that if it was not necessary to avoid name conflicts?