Articles of covariância

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 […]

IDictionary no .NET 4 não covariante

O IDictionary no .NET 4 / Silverlight 4 não suporta covariância, ou seja, não posso fazer IDictionary myDict = new Dictionary(); analógico para o que eu posso fazer com IEnumerable s agora. Provavelmente se resume ao KeyValuePair não sendo covariante também. Eu sinto que a covariância deveria ser permitida nos dictionarys pelo menos para os […]

Covariância e IList

Eu gostaria de uma coleção Covariant cujos itens podem ser recuperados por índice. IEnumerable é a única coleção .net que eu conheço que é Covariant, mas não tem esse suporte de índice. Especificamente, gostaria de fazer isso: List dogs = new List(); IEnumerable animals = dogs; IList animalList = dogs; // This line does not […]

Por que o conjunto imutável de Scala não é covariante em seu tipo?

EDIT : Re-escrito esta questão com base na resposta original A class scala.collection.immutable.Set não é covariante em seu parâmetro de tipo. Por que é isso? import scala.collection.immutable._ def foo(s: Set[CharSequence]): Unit = { println(s) } def bar(): Unit = { val s: Set[String] = Set(“Hello”, “World”); foo(s); //DOES NOT COMPILE, regardless of whether type is […]

Exemplo de covariância e contravariância do mundo real

Eu estou tendo um pouco de dificuldade em entender como eu usaria covariância e contravariância no mundo real. Até agora, os únicos exemplos que vi foram o mesmo exemplo de array antigo. object[] objectArray = new string[] { “string 1”, “string 2” }; Seria bom ver um exemplo que me permita usá-lo durante o meu […]

Como é aplicada a covariância genérica e a contra-variância no C # 4.0?

Não participei do PDC 2008, mas ouvi algumas notícias de que o C # 4.0 é anunciado para suportar a covariância e a contra-variância genéricas. Ou seja, List pode ser atribuído a List . Como poderia ser? No livro C # in Depth de Jon Skeet, é explicado por que os genéricos C # não […]

Diferença entre covariância e contra-variância

Estou tendo dificuldade em entender a diferença entre covariância e contravariância.

Por que as matrizes são covariantes, mas os genéricos são invariantes?

De Java eficaz por Joshua Bloch, As matrizes diferem do tipo genérico de duas maneiras importantes. Os primeiros arrays são covariantes. Os genéricos são invariantes. Covariant significa simplesmente que se X é um subtipo de Y, então X [] também será um sub-tipo de Y []. Matrizes são covariantes Como string é o subtipo de […]

O suporte ao C # retorna a covariância do tipo?

Eu estou trabalhando com o .NET framework e eu realmente quero ser capaz de fazer um tipo personalizado de página que todo o meu site usa. O problema surge quando estou tentando acessar a página de um controle. Eu quero ser capaz de retornar meu tipo específico de página em vez da página padrão. Há […]