Ahora que tenemos covarianza y contravarianza genéricas en las interfaces y delegados en C#, me llamó la atención si se le da un Type
, puede deducir la covarianza/contravarianza de sus argumentos genéricos. Empecé a tratar de escribir mi propia implementación, que examinaría todos los métodos de un tipo determinado y vería si los tipos de retorno y los argumentos coinciden con los tipos en los argumentos genéricos. El problema es que incluso si tengo esto:¿Hay alguna forma de determinar la varianza de una interfaz/delegado en C# 4.0?
public interface IFoo<T>
{
void DoSomething(T item);
}
usando mi lógica, parece que debería ser contravariant, pero ya que no llegó a especificar:
public interface IFoo<in T>
{
void DoSomething(T item);
}
(el parámetro) en realidad no es contravariante. Lo que lleva a mi pregunta: ¿hay alguna forma de determinar la varianza de los parámetros genéricos?
¿por qué necesitarías eso? –
@ Mitch Te lo haré saber cuando me dé cuenta :) Solo estaba preguntando por curiosidad ... – BFree