Variância no tratamento de tipos

Variância no tratamento de tipos em C#: Variância, Invariância, Covariância e Contravariância: O que é?

Como tornar seu código melhor entendendo variância de tipos? Quando falamos em variância no tratamento de tipos estamos falando dos conceitos de: variância, invariância, covariância e contravariância. Portanto, esse artigo vai explicar um pouco sobre cada conceitos com cenários práticos e a relação que eles têm com o princípio SOLID, ou mais especificamente sobre o Princípio da substituição de Liskov.