c# Schnittstelle Implementierung: verborgene und explizite Methode
Die Schnittstelle in c# definiert den Vertrag, dem die Klasse oder die Struktur folgen muss. Bei der Implementierung der Schnittstelle können Sie zwei Methoden auswählen: verborgene Implementierung und explizite Implementierung.
versteckte Implementierung
korrigieren Sie die Schnittstellenmethode als Teil einer Klasse oder Struktur. Auf diese Methoden kann auf zwei Arten zugegriffen werden: Klasse und Schnittstelle. Beispiele wie folgt:
Ausdrücke
public interface ICopyable { void CopyTo(Array array, int index); } public class MyClass : ICopyable { public void CopyTo(Array array, int index) { // 实现代码 } }
<何> Wenn Sie eine versteckte oder explizite Implementierung verwenden
public interface ICopyable { void CopyTo(Array array, int index); } public class MyClass : ICopyable { void ICopyable.CopyTo(Array array, int index) { // 实现代码 } }
versteckte Implementierung . Es vereinfacht den Code, indem die Anforderungen der Definition der explizite Methode beseitigt werden.
als : angesehen werden
Sie müssen mehrere Schnittstellen mit demselben Methodennamen realisieren, aber unterschiedlich implementieren. Es muss von einer versteckten Schnittstelle aus einer öffentlichen API einer Klasse oder Struktur implementiert werden.
Vorteile: ermöglicht eine detailliertere Kontrolle, Details zu implementieren, und vermeidet mehrdeutige Konfliktmethoden in mehreren Schnittstellen.
Nachteile:Der Code kann zu langwierigen und komplizierten führen.
in die Implementierung:Microsoft -Leitlinien für die explizite Implementierung
Microsoft -Leitlinienprinzipien werden normalerweise empfohlen, um eine explizite Implementierung zu vermeiden, da dies zu einem zufälligen Verhalten führen kann. Das Prinzip dieser Anleitung kann jedoch zuvor vor der Abhängigkeitsinjektion (DI) formuliert werden. Bei der Verwendung von DI werden normalerweise Schnittstellen übergeben.Das obige ist der detaillierte Inhalt vonImplizite vs. explizite Schnittstellenimplementierung in C#: Wann sollte ich welches verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!