Проще говоря, IDE предлагает дополнительные экономящие время функции по простому редактору.
Причина явной реализации интерфейса состоит в том, чтобы избежать конфликтов имен, в результате чего объект должен быть явно приведен к этому интерфейсу перед вызовом этих методов.
Вы можете думать об этих методах не как о публичных в классе, но будучи привязанным непосредственно к интерфейсу. Нет причин указывать общедоступный / частный / защищенный, поскольку он всегда будет общедоступным, поскольку интерфейсы не могут иметь закрытых членов.
(Microsoft имеет обзор явной реализации интерфейса )
Явная реализация члена позволяет устранять неоднозначность члены интерфейса с одинаковой сигнатурой.
Без явных реализаций члена интерфейса было бы невозможно для класса или структуры иметь разные реализации членов интерфейса с той же сигнатурой и возвращаемым типом.
Почему явная реализация интерфейса может не быть публичным? Когда член реализован явно, к нему нельзя получить доступ через экземпляр класса, а только через экземпляр интерфейса.
public interface IPrinter
{
void Print();
}
public interface IScreen
{
void Print();
}
public class Document : IScreen,IPrinter
{
void IScreen.Print() { ...}
void IPrinter.Print() { ...}
}
.....
Document d=new Document();
IScreen i=d;
IPrinter p=d;
i.Print();
p.Print();
.....
Явные реализации члена интерфейса недоступны через экземпляры класса или структуры.