Domanda

leggermente diverso un'informazione riguardo varianza questo momento.

Lo prendo dalla sperimentazione che C # non consente di ignorare una funzione virtuale con una funzione controvariante? In caso affermativo, come si fa a farlo, dal momento che continuo a ricevere "metodo adeguato di sovraccarico non trovato." Se non lo è, perché no? se previsto dalla classe di base che il valore sarà sempre un int, e la sub-classe può prendere un oggetto, quale è il problema?

Lo stesso per tornare tipi, dovrebbe essere covarianti nel loro firma overrride

Quali lingue ti permettono di fare questo? (C ++ / Java sto guardando te) e se consentono di utilizzare, quali tipi di varianza? (Tipo di ritorno / lista di argomenti, ecc.)

Potresti avere più le sostituzioni? Non vedo perché non fintanto che le firme erano tecnicamente unico.

Perché C # / CLR non supporto metodo di sostituzione co / contra-varianza?

Ho letto questo e non vedo risposte a nessuna delle domande. So di varianza generici, e so che è impressionante. Io desidero essere informato firma del metodo della varianza, e non solo in C #, ma anche in C # (cioè., Compreso ma non limitato a). Se non esiste vorrei una conferma di questo e una spiegazione (è un dettaglio di implementazione? È il mio tipo teoria sbagliata? E 'solo il CLR / C # capita di non supportare questa funzione particolare? E' qualcosa che porto' t pensato dal momento che non ho a che fare con l'attuazione del CLR, e quindi non so i dettagli specifici complessi?)

È stato utile?

Soluzione

Trovato la risposta, la sezione 10.6.4 negli stati C # specifica che le sostituzioni devono avere la stessa firma

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top