Die explizite Elementimplementierung ermöglicht die Disambiguierung von Schnittstellenmitgliedern mit derselben Signatur.
Ohne explizite Implementierungen von Schnittstellenelementen wäre es für eine Klasse oder Struktur unmöglich, unterschiedliche Implementierungen von Schnittstellenelementen mit derselben Signatur und demselben Rückgabetyp zu haben.
Warum kann die explizite Implementierung einer Schnittstelle nicht öffentlich sein? Wenn ein Mitglied explizit implementiert ist, kann nicht über eine Klasseninstanz, sondern nur über eine Instanz der Schnittstelle darauf zugegriffen werden.
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();
.....
Auf Implementierungen von expliziten Schnittstellenelementen kann nicht über Klassen- oder Strukturinstanzen zugegriffen werden.