If that's how the client code is using the class, it doesn't really matter. If it needs to do something interface specific, it should declare the interface it needs, and assign the class to that e.g.
I1 i = new TheClass()
i.TheMethod();
Of course, using your current implementation TheClass
, it doesn't matter if declared i
as I1
, or I2
, as you only have a single implementation.
If you want a separate implementation per interface, then you need to create explicit implementations ...
void I1.TheMethod()
{
Console.WriteLine("I1");
}
void I2.TheMethod()
{
Console.WriteLine("I2");
}
But keep in mind, explicit implementations cannot be public. You can implement just one explicitly, and leave the other as the default which can be public.
void I1.TheMethod()
{
Console.WriteLine("I1");
}
public void TheMethod()
{
Console.WriteLine("Default");
}
Have a look the msdn article for more details.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…