|
|
Veröffentlicht am 03.08.2023 20:35:23
|
|
|
|

Anforderungen: Kürzlich habe ich mir den .NET-Quellcode angesehen und festgestellt, dass es im Interface-Generic ein Out-Schlüsselwort gibt, wie zum Beispiel:öffentliche Schnittstelle IStringLocalizer<out T>, und dann studierte ich es.
Generische Typparameter in einer Schnittstelle können als Kovarianten oder Wechselrichter deklariert werden. Kovarianz erlaubt es Interface-Methoden, einen Rückgabetyp zu haben, der stärker abgeleitet ist als der durch den generischen Typparameter definierte Rückgabetyp. Der Inverter ermöglicht es der Schnittstellenmethode, einen geringeren Grad der Ableitung vom durch den generischen Parameter angegebenen Argumenttyp zu haben. Generische Schnittstellen mit kovarianten oder Inverter-generischen Parametern werden als "Varianten" bezeichnet.
Kovarianz: Verwenden Sie das Out-Schlüsselwort, um den generischen Typparameter als kovariant zu deklarieren.
Revers: Verwenden Sie das Schlüsselwort in, um den generischen Typparameter als Inverter zu deklarieren.
Dieser Screenshot von VS2022 ist sehr anschaulich – er zeigt, welche Einschränkungen das für Generika mit sich bringt, wie unten gezeigt:
Im DienstFunc<in T, raus TResult>Das bedeutet, dass der Parametertyp T und der Rückgabetyp TResult ist.
Referenz:
Der Hyperlink-Login ist sichtbar.
Der Hyperlink-Login ist sichtbar.
|
Vorhergehend:Ein neuer Timer in .NET 6, PeriodicTimer, wird verwendetNächster:Qv2ray verbindet den Trojan-Go-Dienst unter Windows
|