Perguntas com a marcação «covariance»

Covariância, contravariância e invariância descrevem como a hierarquia de herança de tipo existente muda quando sujeita a alguma transformação (como o uso em genéricos). Se a transformação mantém a ordem da hierarquia original, ela é "covariante". Se o inverter, é "contravariante". Se quebrar, é "invariante".

14
Em C #, por que um objeto List <string> não pode ser armazenado em uma variável List <object>
Parece que um objeto List não pode ser armazenado em uma variável List em C # e nem pode ser convertido explicitamente dessa forma. List&lt;string&gt; sl = new List&lt;string&gt;(); List&lt;object&gt; ol; ol = sl; resulta em não é possível converter implicitamente o tipo System.Collections.Generic.List&lt;string&gt;paraSystem.Collections.Generic.List&lt;object&gt; E depois... List&lt;string&gt; sl = new …

9
C # suporta covariância de tipo de retorno?
Estou trabalhando com o .NET framework e realmente quero ser capaz de fazer um tipo de página personalizado que todo o meu site use. O problema surge quando tento acessar a página de um controle. Desejo poder retornar meu tipo específico de página em vez da página padrão. Há alguma …
84 c#  covariance 

1
O que torna o ValueTuple covariante?
Isso é compilado corretamente no C # 7.3 (Framework 4.8): (string, string) s = ("a", "b"); (object, string) o = s; Eu sei que isso é açúcar sintático para o seguinte, que também compila corretamente: ValueTuple&lt;string, string&gt; s = new ValueTuple&lt;string, string&gt;("a", "b"); ValueTuple&lt;object, string&gt; o = s; Portanto, parece …

1
C # foreach comportamento inesperado
Por que o compilador C # permite que isso compile e lança uma exceção de tempo de execução quando executado? class Program { static void Main(string[] args) { IEnumerable&lt;Test&gt; list = new List&lt;Test&gt;() { new Test() }; foreach(IDisposable item in list) { } } } public class Test { } …
8 c#  covariance 
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.