La covariance, la contravariance et l'invariance décrivent comment la hiérarchie d'héritage de type existante change lorsqu'elle est soumise à une certaine transformation (comme l'utilisation dans les génériques).
Si la transformation conserve l'ordre de la hiérarchie d'origine, elle est "covariante".
S'il l'inverse, il est «contravariant».
S'il le casse, il est "invariant".
Considérez les classes suivantes représentant un système de commande: Public Class WebOrder
Inherits OrderBase
Public Overrides Property OrderItem as Web ...