vorrei scrivere il seguente metodoCome rendere un metodo generico che prendono un tipo generico
private void Foo<T, TItem>(T<TItem> param1)
Dove T deve essere un tipo generico che prende TItem come informazioni generiche.
esempio chiamata sarebbe come:
private void Main()
{
List<int> ints = new List<int>();
Foo<List, int>(ints);
}
Edit: Nel mio caso avrei solo bisogno di per le collezioni. Il caso di utilizzo effettivo è che volevo scrivere un metodo che aggiunge qualcosa ad un ICollection purtroppo il ICollection
non ha un metodo .Add
solo lo ha lo ICollection<T>
.
Non posso cambiare il metodo per:
private Foo<T>(ICollection<T>)
poiché con che sto perdendo le informazioni che tipo ha l'elenco è, che è più importante per me di quello che digitare le voci all'interno della lista.
così è nata l'idea di cui sopra, che non ha funzionato.
non credo che sia possibile dato che 'list' si aspetta sempre un parametro generico. – MutantNinjaCodeMonkey
Non penso che tu possa fare quel vincolo. Che dire di avere T come un tipo generico che implementa IInterface dove T deriva da TItem? –
Non capisco davvero come 'Foo' richieda che' T' e 'TItem' siano correlati nel modo descritto; potresti dare un esempio più specifico? – Codor