Если именно так клиентский код использует класс, это не имеет значения. Если ему нужно сделать что-то специфическое для интерфейса, он должен объявить интерфейс, который ему нужен, и назначить класс, например,
I1 i = new TheClass()
i.TheMethod();
Конечно, используя вашу текущую реализацию TheClass
, не имеет значения, если объявлено i
как I1
или I2
, поскольку у вас есть только одна реализация.
Если вы хотите отдельную реализацию для интерфейса, вам нужно создать явные реализации ...
void I1.TheMethod()
{
Console.WriteLine("I1");
}
void I2.TheMethod()
{
Console.WriteLine("I2");
}
Но имейте в виду, что явные реализации не могут быть публичными. Вы можете явно реализовать только одно, а другое оставить по умолчанию, которое может быть общедоступным.
void I1.TheMethod()
{
Console.WriteLine("I1");
}
public void TheMethod()
{
Console.WriteLine("Default");
}
Посмотрите статью MSDN для более подробной информации.