I've come across these in a textbook I am reading on C#, but I am having difficulty understanding them, probably due to lack of context.

Is there a good concise explanation of what they are and what they are useful for out there?

Edit for clarification:

Covariant interface:

interface IBibble<out T>
.
.

Contravariant interface:

interface IBibble<in T>
.
.
Edit
Report