Articles of generics

Come posso registrare dynamicmente le classi generiche con un nome con Unity?

Ho un assembly con molte classi (oltre 300) con una BaseClass e voglio registrare una class generica con un’interfaccia. Con l’unità devi registrarti per { Name } se vuoi risolvere un array di oggetti dell’interfaccia. Voglio automaticamente una matrice di oggetti in MainViewModel . C’è un modo per automatizzare questo con la riflessione? Eventuali suggerimenti? […]

Supporto di covarianza e controvarianza per un singolo parametro di tipo

Possibile duplicato: Covarianza e controvarianza sullo stesso argomento di tipo Puoi dichiarare un parametro di tipo generico come covariante usando la parola chiave out : interface ICovariant È ansible dichiarare un parametro di tipo generico come controvariante utilizzando la parola chiave in: interface IContravariant E puoi anche supportare entrambi per diversi parametri di tipo: interface […]

C # Abstract Metodo generico

C #, .net 3.5 Sto cercando di creare una class base che abbia un metodo generico. Le classi che ne ereditano dovrebbero specificare il / i tipo / i del metodo. La premessa per questo è per la creazione di classi che gestiscono il filtraggio. Quindi ho: public abstract class FilterBase { //NEED Help Declaring […]

Conosco il typeof (T) ma il compilatore no. Come risolvere?

Sto provando a scrivere un metodo come questo: public static T Test() { if (typeof(T)==typeof(string)) return “1241”; // do something else } ma non riesco a capire come tirarlo fuori. Voglio restituire valori in base al tipo di T con cui è stato invocato il metodo. Devo restituire stringhe, int, classi personalizzate, elenco ecc. L’effettivo […]

Shadowing Inherited Generic Interface Membri in .NET: buono, cattivo o brutto?

So che i membri di shadowing nelle implementazioni di class possono portare a situazioni in cui il membro “sbagliato” può essere chiamato a seconda di come ho lanciato le mie istanze, ma con le interfacce non vedo che questo può essere un problema e mi trovo a scrivere interfacce così spesso public interface INode { […]

Riscrivi un codice generico C # in F #

Sto cercando di riscrivere il codice generico come questo (C #): U Upcast(T x) where T : U { return x; } In F #: let ucast ‘U> (x: ‘T) = x :> ‘U Ma la risoluzione dei vincoli di F # funziona diversamente da C # e il compilatore emette un sacco di errori […]

Generici usati in struct vs class

Supponiamo di avere la seguente definizione di struct che utilizza i generici: public struct Foo { public T First; public T Second; public Foo(T first) { this.First = first; } } Il compilatore dice ‘Foo.Second’ deve essere assegnato completamente prima che il controllo venga restituito al chiamante Tuttavia, se Foo è una class, allora si […]

Funzione generica per gestire lo smaltimento di oggetti IDisposable

Sto lavorando su una class che si occupa di molti oggetti Sql – Connection, Command, DataAdapter, CommandBuilder, ecc. Ci sono più istanze in cui abbiamo un codice come questo: if( command != null ) { command.Dispose(); } if( dataAdapter != null ) { dataAdapter.Dispose(); } etc So che questo è abbastanza insufficiente in termini di […]

Differenza tra interfaccia come tipo vincolo e interfaccia come parametro?

Se volessi creare un metodo che prende un’istanza di IList come parametro (o qualsiasi altra interfaccia, ma usiamo IList come esempio), potrei creare un metodo generico con un vincolo di tipo, ad esempio: public static void Foo1(T list) where T : IList { } In alternativa, potrei creare un metodo che prende direttamente un parametro […]

implementare un operatore di cast in una class astratta generica

Sto cercando di essere pigro e implementare gli operatori di cast nella class base astratta piuttosto che in ciascuna delle classi concrete derivate. Sono riuscito a lanciare in un modo, ma non sono in grado di lanciare l’altro. Penso che potrebbe non essere ansible, ma volevo scegliere la mente SO collettiva prima di arrendersi: public […]