.NET-Schnittstellen, die implizite Umwandlungen von nicht abgeleiteten Typen ermöglichen

8

Ich habe den Roslyn-Quellcode gelesen, als ich dies bemerkte seltsamer Abschnitt:

%Vor%

Ich bin neugierig, was dafür nötig wäre. Es ist mir besonders wichtig, wann eine Schnittstelle eine implizite Umwandlung von einem nicht abgeleiteten Typ zulässt. Allerdings wäre auch eine Erklärung für Arrays / Delegaten interessant.

    
Ringil 21.08.2016, 00:11
quelle

1 Antwort

2

Es scheint ein klassisches Beispiel für Covariance in Generics zu sein: Sie können die Schnittstelle mit der generischeren Klasse anstelle der abgeleiteten verwenden.

Also sie

  

"erlauben implizite Umwandlungen von Typen, die nicht von ihnen abgeleitet sind"

da haben Sie eine implizite Umsetzung von der Schnittstelle mit dem Basistyp zur Schnittstelle mit dem abgeleiteten Typ, also von Typen (die Schnittstellen mit Basistypen), die nicht von ihnen abgeleitet sind (die Schnittstellen mit abgeleiteten Typen).

In meinem Beispiel können Sie eine kovariante Schnittstelle sehen, die den Bereich einer abgeleiteten Form als die weniger abgeleitete Form berechnet, so dass Sie tatsächlich eine Besetzung haben, bei der zum Beispiel eine Dimension verloren gegangen ist ...

%Vor%     
user6996876 21.08.2016 05:34
quelle

Tags und Links