OriginalGriff: explicit interface methods should not be public (you will get compile error if you declare any access modifier, but I wonder did you check your code before you wrote the answer?) but it is private by default. The reason being is that these methods should be accessible via the interface reference not via the object of the class.
So, here is how we implement (explicit implementation) the interfaces which happened to be having same methods.
class testing : test1, test2
{
void test1.show()
{
MessageBox.Show("From interface test1");
}
void test2.show()
{
MessageBox.Show("From interface test2");
}
}
And here is how you access them:
testing t = new testing();
test1 t1 = t;
test2 t2 = t;
t1.show();
t2.show();