variante generische Interfaces (C#)

Kovarianz (in P), Kontravarianz (out P)

class C {} class E : C {}

interface I<in P> { }
class K<P> : I<P> { }

I<C> x = new K<C>();
I<E> y = x;

Unterscheidung: Schranken/Varianz:

bei Schranken geht es um die Instantiierung (Wahl der Typargument)

bei Varianz um den erzeugten Typ (seine Zuweisungskompatibilität)



Johannes Waldmann 2014-03-31