Articles of covarianza

tipi di ritorno c # covarianti che utilizzano generici

Il codice è l’unico modo per implementare i tipi di ritorno covarianti? public abstract class BaseApplication { public T Employee{ get; set; } } public class Application : BaseApplication {} public class NewApplication : BaseApplication {} Voglio essere in grado di build un’applicazione o una nuova applicazione e far sì che restituisca il tipo di […]

ancora confuso su covarianza e controvarianza e in / out

ok ho letto un po ‘su questo argomento su StackOverflow, ho guardato questo e questo , ma sono ancora un po’ confuso riguardo la co / contro-varianza. da qui La covarianza consente di sostituire un tipo “più grande” (meno specifico) in un’API in cui il tipo originale viene utilizzato solo in una posizione “output” (ad […]

C #: sovrascrive i tipi di ritorno

C’è modo di ignorare i tipi di ritorno in C #? Se sì come, e se no, perché e quale è un modo consigliato di farlo? Il mio caso è che ho un’interfaccia con una class base astratta e discendenti di quello. Mi piacerebbe farlo (ok, non proprio, ma ad esempio!): public interface Animal { […]

vs in Generics

Qual è la differenza tra e ? Per esempio: public interface IExample { … } vs. public interface IExample { … }

Covarianza e IList

Vorrei una collezione di Covariant i cui articoli possono essere recuperati per indice. IEnumerable è l’unica raccolta .net di cui sono a conoscenza che è Covariant, ma non ha questo supporto per gli indici. In particolare, mi piacerebbe farlo: List dogs = new List(); IEnumerable animals = dogs; IList animalList = dogs; // This line […]

Comprensione delle interfacce covariant e controvarianti in C #

Ho trovato questi in un libro di testo che sto leggendo su C #, ma ho difficoltà a comprenderli, probabilmente a causa della mancanza di contesto. C’è una buona spiegazione concisa di cosa sono e di cosa sono utili là fuori? Modifica per chiarimenti: Interfaccia Covariant: interface IBibble . . Interfaccia controvariante: interface IBibble . […]

Esempio di covarianza e controvarianza del mondo reale

Sto avendo un piccolo problema a capire come usare la covarianza e la contravarianza nel mondo reale. Finora, gli unici esempi che ho visto sono stati lo stesso vecchio esempio di array. object[] objectArray = new string[] { “string 1”, “string 2” }; Sarebbe bello vedere un esempio che mi permetterebbe di usarlo durante il […]

Differenza tra covarianza e contro-varianza

Ho difficoltà a capire la differenza tra covarianza e controvarianza.

In che modo la covarianza e la contro-varianza generiche sono implementate in C # 4.0?

Non ho partecipato al PDC 2008, ma ho sentito alcune notizie che il C # 4.0 è stato annunciato per supportare covarianza e contro-varianza generiche. Cioè, l’ List può essere assegnato a List . Come potrebbe essere? Nel libro C # di Jon Skeet in Depth , viene spiegato perché i generici C # non […]

Perché gli array sono covarianti ma i generici sono invarianti?

Da Java efficace di Joshua Bloch, Le matrici differiscono dal tipo generico in due modi importanti. I primi array sono covarianti. I generici sono invarianti. Covariant significa semplicemente se X è sottotipo di Y, quindi X [] sarà anche sottotipo di Y []. Le matrici sono covarianti Poiché la stringa è sottotipo di Oggetto Così […]