Alles Vertragssache - Ko- und Kontravarianz in C# 1-4
-
Upload
lars-corneliussen -
Category
Technology
-
view
2.815 -
download
3
description
Transcript of Alles Vertragssache - Ko- und Kontravarianz in C# 1-4
![Page 1: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/1.jpg)
Alles Vertragssache!Ko- und Kontravarianz in C#
Lars Corneliussenitemis AG
itemis.delcorneliussen.com
Mittwoch, 25. November 2009
![Page 2: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/2.jpg)
Kovarianz und Kontravarianz ist die Unterscheidung, ob ein Aspekt
gleichartig der Vererbungsrichtung (kovariant)
oder
entgegengesetzt zu dieser (kontravariant)
ist.
Mittwoch, 25. November 2009
![Page 3: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/3.jpg)
Aspekt = Typdeklaration
Mittwoch, 25. November 2009
![Page 4: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/4.jpg)
Varianz = Abweichung
Mittwoch, 25. November 2009
![Page 5: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/5.jpg)
Ko- und Kontravarianz... beschreibt die erlaubte Abweichung vom deklarierten Typ.
Mittwoch, 25. November 2009
![Page 6: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/6.jpg)
string
object
Vererbungrichtung
Mittwoch, 25. November 2009
![Page 7: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/7.jpg)
object meinObjekt = "abcd";
deklarierter Typ
stringobjectVererbungrichtung
Mittwoch, 25. November 2009
![Page 8: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/8.jpg)
object meinObjekt = "abcd";
Abweichung
deklarierter Typ
stringobjectVererbungrichtung
Mittwoch, 25. November 2009
![Page 9: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/9.jpg)
object meinObjekt = "abcd";
Abweichung
kontravariant
deklarierter Typ
stringobjectVererbungrichtung
Mittwoch, 25. November 2009
![Page 10: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/10.jpg)
public string Methode( object parameter) {
return "Hallo, Welt!";
}
object x = Methode( "abc" );
Mittwoch, 25. November 2009
![Page 11: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/11.jpg)
public string Methode( object parameter) {
return "Hallo, Welt!";
}
object x = Methode( "abc" );
deklarierter Typ
string
object
Vererbungrichtung
Mittwoch, 25. November 2009
![Page 12: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/12.jpg)
public string Methode( object parameter) {
return "Hallo, Welt!";
}
object x = Methode( "abc" );
deklarierter Typ
string
object
Vererbungrichtung
Abweichung
Mittwoch, 25. November 2009
![Page 13: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/13.jpg)
Variablen und Parameter sind kontravariant
... sie erlauben Zuweisungen von Werten, deren Typen entgegengesetzt zur Vererbungsrichtung abweichen.
Mittwoch, 25. November 2009
![Page 14: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/14.jpg)
public string Methode( object parameter) {
return "Hallo, Welt!";
}
object x = Methode( "abc" );
Mittwoch, 25. November 2009
![Page 15: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/15.jpg)
public string Methode( object parameter) {
return "Hallo, Welt!";
}
object x = Methode( "abc" );
deklarierter Typ
object
string
Vererbungrichtung
Mittwoch, 25. November 2009
![Page 16: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/16.jpg)
public string Methode( object parameter) {
return "Hallo, Welt!";
}
object x = Methode( "abc" );
deklarierter Typ
object
string
Vererbungrichtung
Abweichung
kovariantMittwoch, 25. November 2009
![Page 17: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/17.jpg)
Methodenrückgabensind kovariant
... sie können Variablen zugewiesen werden, deren Typ gleichartig mit der Vererbungsrichtung abweicht.
Mittwoch, 25. November 2009
![Page 18: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/18.jpg)
Ko- und Kontravarianz in Generics
Mittwoch, 25. November 2009
![Page 19: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/19.jpg)
IList< object > meineObjekte = new List< string >;
Mittwoch, 25. November 2009
![Page 20: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/20.jpg)
IList< object > meineObjekte = new List< string >;
Vererbungrichtung
deklarierter Typ
stringobject
Mittwoch, 25. November 2009
![Page 21: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/21.jpg)
IList< object > meineObjekte = new List< string >;
Vererbungrichtung
deklarierter Typ
stringobject
kontravariant! Fertig!?
Abweichung
Mittwoch, 25. November 2009
![Page 22: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/22.jpg)
Mit string und object kommen wir nicht weit...
Mittwoch, 25. November 2009
![Page 23: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/23.jpg)
Tier
Säugetier Reptil
Mittwoch, 25. November 2009
![Page 24: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/24.jpg)
Das Problem bei einer generischen Liste:
Mittwoch, 25. November 2009
![Page 25: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/25.jpg)
List< >
Mittwoch, 25. November 2009
![Page 26: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/26.jpg)
List< >
IList< >
Mittwoch, 25. November 2009
![Page 27: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/27.jpg)
List< >
IList< >
Peter
Mittwoch, 25. November 2009
![Page 28: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/28.jpg)
List< >
IList< >
Peter
Klaus
Mittwoch, 25. November 2009
![Page 29: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/29.jpg)
List< >
IList< >
Peter
Mittwoch, 25. November 2009
![Page 30: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/30.jpg)
Bis C# 3.0 sind generische Typparameter invariant
... sie können in der Benutzung nicht vom implementierten Typ abweichen.
Mittwoch, 25. November 2009
![Page 31: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/31.jpg)
C# 4 unterstützt...... sichere Ko- und Kontravarianz von generischen Typparametern.
Mittwoch, 25. November 2009
![Page 32: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/32.jpg)
Sehen wir uns mal ein paar Varianten an...
Mittwoch, 25. November 2009
![Page 33: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/33.jpg)
Ein Tier-Geschenk zum auspacken...
Mittwoch, 25. November 2009
![Page 34: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/34.jpg)
IGeschenk< T>Generische Schnittstelle
+ Auspacken() : T
Mittwoch, 25. November 2009
![Page 35: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/35.jpg)
IGeschenk< T>Generische Schnittstelle
+ Auspacken() : T
Implementierung
Auspacken() {
return new() ;}
IGeschenk<Säugetier>
Konkrete Schnittstelle
+ Auspacken() :
Mittwoch, 25. November 2009
![Page 36: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/36.jpg)
IGeschenk< T>Generische Schnittstelle
+ Auspacken() : T
Implementierung
Auspacken() {
return new() ;}
IGeschenk<Säugetier>
Konkrete Schnittstelle
+ Auspacken() :
IGeschenk< > Hoffentlich ein
Mittwoch, 25. November 2009
![Page 37: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/37.jpg)
IGeschenk< T>Generische Schnittstelle
+ Auspacken() : T
Implementierung
Auspacken() {
return new() ;}
IGeschenk<Säugetier>
Konkrete Schnittstelle
+ Auspacken() :
Mittwoch, 25. November 2009
![Page 38: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/38.jpg)
IGeschenk< T>Generische Schnittstelle
+ Auspacken() : T
Implementierung
Auspacken() {
return new() ;}
IGeschenk<Säugetier>
Konkrete Schnittstelle
+ Auspacken() :
Hoffentlich ein
IGeschenk<Tier>Mittwoch, 25. November 2009
![Page 39: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/39.jpg)
IGeschenk< T>Generische Schnittstelle
+ Auspacken() : T
Implementierung
Auspacken() {
return new() ;}
IGeschenk<Säugetier>
Konkrete Schnittstelle
+ Auspacken() :
Mittwoch, 25. November 2009
![Page 40: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/40.jpg)
IGeschenk< T>Generische Schnittstelle
+ Auspacken() : T
Implementierung
Auspacken() {
return new() ;}
IGeschenk<Säugetier>
Konkrete Schnittstelle
+ Auspacken() :
Jippie!!! Ein
Tiger!!
IGeschenk<Tiger>Mittwoch, 25. November 2009
![Page 41: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/41.jpg)
IGeschenk< T>Generische Schnittstelle
+ Auspacken() : T
Implementierung
Auspacken() {
return new() ;}
IGeschenk<Säugetier>
Konkrete Schnittstelle
+ Auspacken() :
Mittwoch, 25. November 2009
![Page 42: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/42.jpg)
Ein Tierheim um Tiere abzugeben...
Mittwoch, 25. November 2009
![Page 43: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/43.jpg)
ITierheim< T>Generische Schnittstelle
+ Einsperren( T )
Mittwoch, 25. November 2009
![Page 44: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/44.jpg)
ITierheim< T>Generische Schnittstelle
+ Einsperren( T )
Implementierung
Einsperren( ) {
}
??
ITierheim<Säugetier>
Konkrete Schnittstelle
+ Einsperren( )
Mittwoch, 25. November 2009
![Page 45: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/45.jpg)
ITierheim< T>Generische Schnittstelle
+ Einsperren( T )
Implementierung
Einsperren( ) {
}
??
ITierheim<Säugetier>
Konkrete Schnittstelle
+ Einsperren( )
ITierheim< > Da bitte!
Mittwoch, 25. November 2009
![Page 46: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/46.jpg)
ITierheim< T>Generische Schnittstelle
+ Einsperren( T )
Implementierung
Einsperren( ) {
}
??
ITierheim<Säugetier>
Konkrete Schnittstelle
+ Einsperren( )
Mittwoch, 25. November 2009
![Page 47: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/47.jpg)
ITierheim< T>Generische Schnittstelle
+ Einsperren( T )
Implementierung
Einsperren( ) {
}
??
ITierheim<Säugetier>
Konkrete Schnittstelle
+ Einsperren( )
ITierheim<Tier>
Da bitte!
Mittwoch, 25. November 2009
![Page 48: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/48.jpg)
ITierheim< T>Generische Schnittstelle
+ Einsperren( T )
Implementierung
Einsperren( ) {
}
??
ITierheim<Säugetier>
Konkrete Schnittstelle
+ Einsperren( )
Mittwoch, 25. November 2009
![Page 49: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/49.jpg)
ITierheim< T>Generische Schnittstelle
+ Einsperren( T )
Implementierung
Einsperren( ) {
}
??
ITierheim<Säugetier>
Konkrete Schnittstelle
+ Einsperren( )
IGeschenk<Giraffe>
Da bitte!
Mittwoch, 25. November 2009
![Page 50: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/50.jpg)
ITierheim< T>Generische Schnittstelle
+ Einsperren( T )
Implementierung
Einsperren( ) {
}
??
ITierheim<Säugetier>
Konkrete Schnittstelle
+ Einsperren( )
Mittwoch, 25. November 2009
![Page 51: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/51.jpg)
Ein Tiermarkt zum tauschen von Tieren...
Mittwoch, 25. November 2009
![Page 52: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/52.jpg)
Generische SchnittstelleITiermarkt<T>
+ T Tauschen( T )
Mittwoch, 25. November 2009
![Page 53: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/53.jpg)
Generische SchnittstelleITiermarkt<T>
+ T Tauschen( T )
Implementierung
Tauschen( ) {
return
}
??
Mittwoch, 25. November 2009
![Page 54: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/54.jpg)
Generische SchnittstelleITiermarkt<T>
+ T Tauschen( T )
Implementierung
Tauschen( ) {
return
}
??
ITiermarkt<Säugetier>
Konkrete Schnittstelle
+ Tauschen( )
Mittwoch, 25. November 2009
![Page 55: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/55.jpg)
Generische SchnittstelleITiermarkt<T>
+ T Tauschen( T )
Implementierung
Tauschen( ) {
return
}
??
ITiermarkt<Säugetier>
Konkrete Schnittstelle
+ Tauschen( )
Mittwoch, 25. November 2009
![Page 56: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/56.jpg)
Generische SchnittstelleITiermarkt<T>
+ T Tauschen( T )
Implementierung
Tauschen( ) {
return
}
??
Mittwoch, 25. November 2009
![Page 57: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/57.jpg)
Implementierung
Tauschen( ) {
return
}
??
Mittwoch, 25. November 2009
![Page 58: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/58.jpg)
Implementierung
Tauschen( ) {
return
}
??
Mittwoch, 25. November 2009
![Page 59: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/59.jpg)
Implementierung
Tauschen( ) {
return
}
??
ITiermarkt<Säugetier,Säugetier>
Konkrete Schnittstelle
+ Tauschen( )
Generische SchnittstelleITiermarkt<in I, out O>
+ O Tauschen( I )
Mittwoch, 25. November 2009
![Page 60: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/60.jpg)
Implementierung
Tauschen( ) {
return
}
??
ITiermarkt<Säugetier,Säugetier>
Konkrete Schnittstelle
+ Tauschen( )
Generische SchnittstelleITiermarkt<in I, out O>
+ O Tauschen( I )
Mittwoch, 25. November 2009
![Page 61: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/61.jpg)
ITiermarkt<Giraffe, Tier>.Tauschen()
ITiermarkt<Säugetier, Säugetier>
Säugetier Tauschen ( Säugetier)
Vererbungrichtung
Abweichung
Vererbungrichtung
Mittwoch, 25. November 2009
![Page 62: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/62.jpg)
In C# 4 Generische Typparameter ENTWEDERko- ODER kontravariant
... mit „out“ klassifizierte Typparameter können kovariant abweichen,
... mit „in“ klassifizierte Typparameter können kontravarian abweichen.
Mittwoch, 25. November 2009
![Page 63: Alles Vertragssache - Ko- und Kontravarianz in C# 1-4](https://reader038.fdokument.com/reader038/viewer/2022103014/54827c2bb4af9f46118b47fe/html5/thumbnails/63.jpg)
Vielen Dankfürs Zugucken!
Lars Corneliussenlcorneliussen.com
Mittwoch, 25. November 2009