Heim > Backend-Entwicklung > C++ > Implizite vs. explizite Schnittstellenimplementierung in C#: Wann sollte ich welches verwenden?

Implizite vs. explizite Schnittstellenimplementierung in C#: Wann sollte ich welches verwenden?

Barbara Streisand
Freigeben: 2025-02-01 08:41:09
Original
573 Leute haben es durchsucht

Implicit vs. Explicit Interface Implementation in C#: When Should I Use Which?

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)
    {
        // 实现代码
    }
}
Nach dem Login kopieren
Die Grenzflächenmethode in der Klasse oder Struktur separat ausdrücken. Diese Methoden können nur über Schnittstellen zugegriffen werden und können nicht über die Klasse zugegriffen werden. Beispiele wie folgt: <下>

<何> 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)
    {
        // 实现代码
    }
}
Nach dem Login kopieren
Wenn die Implementierung einer Klasse oder Struktur vollständig mit der Definition in der Schnittstelle übereinstimmt, ist

versteckte Implementierung . Es vereinfacht den Code, indem die Anforderungen der Definition der explizite Methode beseitigt werden.

  • Die folgenden Situationen sollten als

    als : angesehen werden

  • muss die von der Schnittstelle bereitgestellte Standardimplementierung neu schreiben.
  • 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.

    • Vor- und Nachteile
    • Umsetzung ausdrücken:

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:
  • Vorteile:
  • Der Code ist einfacher und die Anzahl der Codezeilen geringer.
  • Nachteile: weniger Kontrolle über die Implementierung von Details.

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.
    Kurz gesagt, die Auswahl der versteckten und expliziten Schnittstellenimplementierung hängt von den spezifischen Anforderungen des Codes ab. Die Cisectional -Implementierung bietet normalerweise prägnantere Lösungen und implementieren explizit eine größere Flexibilität und Kontrolle der Schnittstellenimplementierung.

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage