Heim >Backend-Entwicklung >C++ >Wie geht C# 4.0 mit generischer Kovarianz und Kontravarianz um?

Wie geht C# 4.0 mit generischer Kovarianz und Kontravarianz um?

Linda Hamilton
Linda HamiltonOriginal
2025-01-25 00:26:08970Durchsuche

How Does C# 4.0 Handle Generic Covariance and Contravariance?

im Depetenverständnis der genetischen Zusammenarbeit und des Wechselrichters in C# 4.0

In der frühen Version von C#unterstützt der generische Typ keine kollaborativen oder Wechselrichter, die Beschränkungen beim Umgang mit der Aggregation der Eltern -Kind -Beziehung bringt. C# 4.0 führte jedoch die Unterstützung für diese Konzepte unter bestimmten Einschränkungen ein.

Die Koordination in der Schnittstelle

Mit dem kollaborativen Typ können generische Typen Ableitungen als Parameter akzeptieren. Verwenden Sie für die Schnittstelle die Schlüsselwortspezifikation "Out". Wenn wir beispielsweise eine Schnittstelle haben, bedeutet dies, dass die Schnittstelle nur den Wert des Abrufentyps auf T ermöglicht. Auf diese Weise können wir

aus der Anweisung an die Methode zur Rückgabe

zurückgeben. IEnumerable<out T> IEnumerable<object> Offenbarung in der Kommission IEnumerable<string>

Mit dem Wechselrichter kann der generische Typ den Basistyp als Parameter akzeptieren. Verwenden Sie für Provision "Keywords". Betrachten Sie Provision. Dies bedeutet eine Methode, um einen Parameter von t Typ T zu akzeptieren. Sie können jetzt als verwenden, da die Methode, Objekte zu erwarten, beim Übergeben der Zeichenfolge immer noch normal funktionieren kann.

Implementieren Sie die Details Action<in T> Action<object> Die Varianzunterstützung in Action<string> C# 4.0 wird durch die Funktion des Laufens (CLR) während der öffentlichen Sprache realisiert. Der Compiler überprüft die korrekte Verwendung der Schnittstelle und die Varianz der Verantwortung. Insbesondere kann die Schnittstelle nur für Ausgabeparameter "out" verwenden, und die Verantwortung muss "in" nur für Eingabeparameter (Setter) verwenden.

Stellen Sie sicher, dass der Typ sicher ist

Obwohl der Unterschied zwischen der Varianz von C# 4.0, wird er auf sichere Weise durchgeführt. Der Compiler stellt sicher, dass jeder Code, der gegen die Typeinschränkung verstößt, abgelehnt wird. Dies verhindert, dass die Bananenliste gezwungen wird, in eine Fruchtliste umgewandelt zu werden, die ungültig ist.

Zusammenfassung

c# 4.0 Die genetische Koordination und der Wechselrichter bei der Ablehnung des Typs der Art des Schicksalsart bieten eine höhere Flexibilität und die Wiederverwendbarkeit von Code. Es ermöglicht den Entwicklern, die Schnittstelle und Provision nahtlos zu verwenden, die die Beziehung zwischen Vater und Sohntypen ausdrückt.

Das obige ist der detaillierte Inhalt vonWie geht C# 4.0 mit generischer Kovarianz und Kontravarianz um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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