Können Sie eine generische Klasse mit einer bestimmten typisierten Klasse unterordnen?

Ich habe eine generische Klasse mit einer Unterklasse, die bestimmte Typen bereitstellt.

public abstract class GenericBase<T>
    where T:Interface1
{
}

Ich untergeordnete die Generika mit bestimmten Implementierungen:

public class Customer:
    GenericBase<Type1>

(Type1 implementiertInterface1).

Ich habe eine andere abstrakte Basisklasse, die einen Verweis darauf hat:

protected GenericBase<Interface1> genericInstance;

Finally, wenn ich versuche, die genericInstance einer Instanz der Basisklasse zuzuweisen, erhalte ich einen Compilerfehler, der besagt, dass "Customer nicht implizit in GenericBase <Interface1> konvertiert werden kann".

base.genericInstance = new Customer(); //Compiler error

Ich verstehe nicht, warum ich diesen Fehler bekommen würde, wennCustomer ist ein Subtyp vonGenericBase<Type1>, undType1 implementiertInterface1. Ist nichtCustomer effektiv eine Art vonGenericBase<Interface1>, wenn es eine Unterklasse von @ iGenericBase<Type1>?

Ich nehme an, ich verstehe hier etwas über Generika falsch; Gibt es eine Möglichkeit, dieses Verhalten zuzulassen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage