188.
In .NET framework less than 4.0, the following Statement 2 will error out but will work in .NET 4.0+. Here, Furniture is abstract class and Table is concrete class.
Furniture table = new Table(); // Statement 1 works in all .NET versions
IEnumerable<Furniture> tables = new List<Table>(); // Statement 2 works only above .NET 4.0
What is this concept called as?
View Description
Covariance: An object that is instantiated with a more derived type argument is assigned to an object instantiated with a less derived type argument. Assignment compatibility is preserved.
Contravariance is reverse of it.