Articles of covariância

Por que C # (4.0) não permite co-e contravariância em tipos de class genéricos?

Qual é o verdadeiro motivo para essa limitação? É apenas trabalho que teve que ser feito? É conceitualmente difícil? Isso é impossível? Claro, não se pode usar os parâmetros de tipo nos campos, porque eles são sempre leitura-gravação. Mas isso não pode ser a resposta, pode? O motivo dessa pergunta é que estou escrevendo um […]

Contravariância explicada

Em primeiro lugar, li muitas explicações sobre SO e blogs sobre covariância e contravariância e um grande agradecimento a Eric Lippert por produzir uma série tão boa sobre Covariância e Contravariância . No entanto, tenho uma pergunta mais específica que estou tentando entender um pouco. Tanto quanto eu entendo, a explicação de Eric é que […]

C #: Variance (Covariance / Contravariance) é outra palavra para polymorphism?

Eu estou tentando descobrir o significado exato das palavras Covariance e Contravariance de vários artigos on-line e perguntas sobre StackOverflow, e pelo que eu posso entender, é apenas outra palavra para polymorphism . Estou correto com a afirmação acima? Ou eu entendi errado?

Casting List – problema de covariância / contravariância

Dados os seguintes tipos: public interface IMyClass { } public class MyClass : IMyClass { } Gostaria de saber como posso converter uma List para uma List ? Eu não estou completamente claro sobre os tópicos de covariância / contravariância, mas eu entendo que não posso simplesmente lançar a Lista por causa disso. Eu poderia […]

Pergunta sobre covariância c #

No código abaixo: interface I1 { } class CI1: I1 { } List listOfCI1 = new List(); IEnumerable enumerableOfI1 = listOfCI1; //this works IList listofI1 = listOfCI1; //this does not Eu sou capaz de atribuir o meu “listOfCI1” para um IEnumerable (devido a covariância) Mas por que não posso atribuí-lo a um IList ? Aliás, […]

Genéricos: Listar é o mesmo que List ?

Eu estou apenas tentando entender a palavra-chave extends em Java Generics. List List significa que podemos encher qualquer object da List que é um Animal então, o seguinte também não significa a mesma coisa: List Alguém pode me ajudar a saber a diferença entre os dois acima? Para mim extends apenas som redundante aqui. Obrigado!

Por que não posso atribuir uma lista a uma lista ?

Eu defini a seguinte class: public abstract class AbstractPackageCall { … } Eu também defino uma subclass desta class: class PackageCall : AbstractPackageCall { … } Existem também várias outras subclases de AbstractPackageCall Agora quero fazer a seguinte binding: List calls = package.getCalls(); Mas eu sempre recebo essa exceção: Error 13 Cannot implicitly convert type […]

Qualquer maneira simples de explicar porque eu não posso fazer List animals = new ArrayList ()?

Eu sei porque não se deve fazer isso. Mas existe uma maneira de explicar a um leigo por que isso não é possível? Você pode explicar isso para um leigo facilmente: Animal animal = new Dog(); . Um cachorro é um tipo de animal, mas uma lista de cães não é uma lista de animais.

ainda confuso sobre covariância e contravariância e in / out

ok eu li um pouco sobre este tópico em stackoverflow, assisti isso e isso , mas ainda um pouco confuso sobre co / contra-variance. daqui A Covariância permite que um tipo “maior” (menos específico) seja substituído em uma API, onde o tipo original é usado apenas em uma posição de “saída” (por exemplo, como um […]

C #: substituindo tipos de retorno

Existe maneira de replace os tipos de retorno em c #? Se sim, como, e se não, por que e o que é uma maneira recomendada de fazer isso? Meu caso é que eu tenho uma interface com uma class base abstrata e descendentes disso. Eu gostaria de fazer isso (ok, não realmente, mas como […]