Skip to main content

Explain covariance and contravariance deeply.

Expert .NET Core
Quick Answer Covariance (out T on IEnumerable): IEnumerable is assignable to IEnumerable รขโ‚ฌโ€ safe for read-only scenarios. Contravariance (in T on Action): Action is assignable to Action รขโ‚ฌโ€ safe for write-only scenarios. Applies to interfaces and delegates, not concrete classes. The in/out keywords express the variance direction.

Answer

Covariance (out) allows substituting derived for base. Contravariance (in) allows substituting base for derived. Applies to delegates, interfaces, and arrays (with runtime checks). Enables type-flexible APIs safely.

S
SugharaIQ Editorial Team Verified Answer

This answer has been peer-reviewed by industry experts holding senior engineering roles to ensure technical accuracy and relevance for modern interview standards.

Want to bookmark, take notes, or join discussions?

Sign in to access all features and personalize your learning experience.

Sign In Create Account

Source: SugharaIQ

Ready to level up? Start Practice