Tengo dos interfaces:C# herencia en los genéricos cuestionar
public interface A {
void aMethod();
}
public interface B : A {
void bMethod();
}
después estoy básicamente utilizando un diccionario de esta manera:
Dictionary<int, A> dict = new Dictionary<int, B>();
C# está diciendo que no puedo convertir de derecho a la izquierda, incluso si la lanzo. ¿Hay alguna manera de usar genéricos en C# para que esto funcione? Si los convierto en clases abstractas, parece que está bien, pero los necesito como interfaces.
¿Qué versión de .NET estás usando? – Dinah
@Dinah: ¿Por qué la versión de framework haría alguna diferencia en este caso? – LukeH
@LukeH: porque .NET 4.0 tiene covarianza y contravariancia que pueden abordar esto. Si dmurph está teniendo este problema a pesar de estar en 4.0, el problema sería diferente de si el problema ocurrió antes de 4.0 – Dinah