Quindi ora che abbiamo Covariance e controvarianze generiche su interfacce e delegati in C#, ero solo curioso di sapere se è stato fornito un Type
, è possibile capire la covarianza/controvarianza dei suoi argomenti generici. Ho iniziato a provare a scrivere la mia implementazione, che avrebbe esaminato tutti i metodi su un determinato tipo e verificato se i tipi di ritorno e gli argomenti corrispondono ai tipi negli argomenti generici. Il problema è che, anche se ho questo:C'è un modo per determinare la Varianza di un'interfaccia/delegato in C# 4.0?
public interface IFoo<T>
{
void DoSomething(T item);
}
usando la mia logica, sembra che dovrebbe essere contravariant, ma dato che non abbiamo in realtà specificare:
public interface IFoo<in T>
{
void DoSomething(T item);
}
(il parametro) in realtà non è controverso. Il che porta alla mia domanda: esiste un modo per determinare la varianza dei parametri generici?
perché ne avresti bisogno? –
@ Mitch ti farò sapere quando lo capisco :) Stavo solo chiedendo per curiosità ... – BFree