Interview Question

What is variance (covariance/contravariance)?

out is covariance for produced values; in is contravariance for consumed values.

💡 Concept ✅ Quick Revision 🔷 C#

Answer

Generic variance allows compatible reference-type conversions for selected generic interfaces and delegates. • Covariance uses out and permits conversion toward a less derived output type. • Contravariance uses in and permits conversion toward a more derived input type. • Variance applies only to reference types and only where the generic declaration permits it.

💡 C# Example

IEnumerable<string> words = new List<string> { "C#" }; IEnumerable<object> objects = words; Action<object> printObject = Console.WriteLine; Action<string> printString = printObject;

⚡ Quick Revision

out is covariance for produced values; in is contravariance for consumed values.