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 exp
This post is the best I've read on the subject
In short, covariance / contravariance /invariance deals with automatic type casting (from base to derived and vice-versa). Those type casts are possible only if some guarantees are respected in terms of read / write actions performed on the casted objects. Read the post for more details.