The Difference Between Covariance and Contravariance in .NET C#
Too Long; Didn't ReadCovariance and Contravariance were introduced by Microsoft in C# 6.0. They allow implicit reference conversion for array types, delegate types, and generic type arguments. Covariance preserves assignment compatibility and contravariance reverses it. Microsoft’s definition is different from what you would find in this story.