There are times when you need to provide an explicit implementation, for example, when implementing IEnumerable and IEnumerable <>, where both interfaces expose the GetEnumerator method.
The following general rule: if I implement an interface, but provide additional more convenient and typical methods and properties to reveal the functionality of the interface, I would explicitly implement the interface. This provides an open interface that makes the class more suitable, but allows you to use algorithms that can rely on the implemented interface to access the methods and properties provided by the interface.
It was hard to say, but I hope it makes sense.
source share