Before reading any further, please read the disclaimer.
As it turns out, an explicit interface method implementation in C# must be tied to the base-most interface to which it belongs; it cannot be tied to a descendant interface.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
namespace Test14
{
class Test
{
interface A
{
void F();
}
interface B: A
{
}
class C: B
{
void A.F() //OK
{
}
void B.F() //error CS0539: 'B.F' in explicit interface declaration is not a member of interface
{
}
}
}
}
|
Well, sorry, but… it is.