Неявная реализация - это когда вы реализуете элемент интерфейса без указания имени интерфейса одновременно.
public interface IFoo
{
void Bar();
}
public class ClassA : IFoo
{
//this is implicit
public void Bar()
{
}
}
public class ClassB : IFoo
{
//this is explicit:
void IFoo.Bar()
{
}
}
Вам нужна явная реализация, когда вы реализуете два (или более) интерфейса, которые имеют функцию / свойствос таким же именем и подписью.В этом случае компилятору необходимо указать, какая реализация принадлежит какому интерфейсу.