Especialização de Sistemas com C# • Avaliação Formativa de Fixação
Instruções:
Clique na alternativa que julgar correta para cada uma das questões.
O sistema fornecerá feedback técnico imediato e detalhado.
Questão 1: Como declarar Restrições de Tipo (Generic Constraints) no C# para exigir que um tipo genérico `T` seja uma classe, possua construtor sem parâmetros e implemente uma interface?
`public class Repositorio where T : class, IEntidade, new() { ... }`
</button>
`public class Repositorio<T : class>` estilo Java.
`public class Repositorio` sem restrições permitindo qualquer tipo.
</button>
`where T = any`
</div>
---
Questão 2: O que significa Covariância (`out T`) em interfaces genéricas no C#?
Permite utilizar um tipo mais derivado (mais específico) do que o originalmente especificado no contrato genérico (ex: `IEnumerable` pode ser atribuído a `IEnumerable`), aplicando-se apenas a posições de SAÍDA/retorno.
</button>
Permite que o tipo genérico seja modificado em tempo de execução.
Permite que qualquer dado seja gravado no banco.
Indica que o tipo só aceita números inteiros.
</div>
---
Questão 3: O que significa Contravariância (`in T`) em interfaces e delegates genéricos (como `IComparer`)?</p>
Permite utilizar um tipo menos derivado (mais genérico/classe base) do que o especificado (ex: `IComparer` pode ser atribuído a `IComparer`), aplicando-se apenas a posições de ENTRADA de parâmetros.
</button>
Exclui os métodos de entrada de dados.
Converte o código em linguagem Assembly.
Desativa a checagem de tipos.
</div>
---
## 🔗 Recursos Relacionados ao Capítulo 12
[📖 Teoria Completa](../topicos/12_generics_constraints_e_variancia.html) | [📊 Slides da Aula](../slides/12_generics_constraints_e_variancia_slides.html) | [💻 Ver Exemplos](../exemplos/12_generics_constraints_e_variancia_exemplos.html) | [🧩 Exercícios Práticos](../exercicios/12_generics_constraints_e_variancia_exercicios.html)