Я читал о неявной или явной реализации методов интерфейса, но я до сих пор не понимаю, как это работает и каковы преимущества.реализация интерфейса: неявный vs явный
Имея код:
interface InterfaceOne
{
void MethodOne();
}
class ClassOne : InterfaceOne
{
public void MethodOne()
{
Console.WriteLine("hello from the class method");
}
void InterfaceOne.MethodOne()
{
Console.WriteLine("hello from the interface method");
}
}
И код из основного метода:
var c1 = new ClassOne();
c1.MethodOne();
InterfaceOne i1 = new ClassOne();
i1.MethodOne();
Console.ReadLine();
А вот выход:
привет из метода класса
привет от метода интерфейса
Мои вопросы:
Почему у меня нет ошибки, имеющей класс с двумя методами с тем же именем и подписью?
Когда я использую ключевое слово var, как компилятор выбирает, какой метод вызывать?
Каковы преимущества?
@MarcinJuraszek это не дубликат, потому что вопрос, который вы упомянули, не отвечает на мой второй вопрос –