Have a look at the below code :
Here we are using the Explicit interface member implementation to differentiate the methods.
We can’t !!! Because there is no access modifier specified in the implementation and hence the methods are treated as ‘private’.
So we try specifying the ‘public’ access modifier for these methods but that too generates a compiler error in visual studio !!!
So then how do we actually use any of those methods . . . .
So what’s confusing here is that although the methods were private they are behaving like public.
Here is a good explanation of this and how the IL code for implicit & explicit Interface Contracts.