Articles

Affichage des articles du octobre, 2011

Contravariance et Covariance

Contravariance et Covariance La covariance et la contravariance sont des termes qui font référence à la possibilité d'utiliser un type plus ou moins dérivé (plus ou moins spécifique) que celui spécifié à l'origine. Covariance Vous permet d'utiliser un type plus dérivé que celui spécifié à l'origine. Vous pouvez assigner une instance de IEnumerable<Derived> à une variable de type IEnumerable<Base>. Contravariance Vous permet d'utiliser un type plus générique (moins dérivé) que celui spécifié à l'origine. Vous pouvez assigner une instance de IEnumerable<Base> à une variable de type IEnumerable<Derived>. Invariance Signifie que vous pouvez utiliser uniquement le type spécifié à l'origine : pour un paramètre de type générique indifférent, il n'est ni covariant ni contravariant. Vous ne pouvez pas attribuer une instance de IEnumerable<Base> à une variable de type IEnumerable<Derived> et inversement.