Leçon 9 : Generics et variance
Sans les génériques, chaque structure de données se duplique : AppleBasket, OrangeBasket — ou pire, un panier d'object avec des casts dangereux à l'exécution. Dans cette leçon, on écrit une seule classe avec un paramètre de type <T>, et on apprend quand out et in permettent de placer un panier de po
Les génériques sont comme un moule unique rempli chaque fois d'une pâte différente — le moule ne change pas, seulement le contenu. Et la règle de sûreté est simple : sortir « un fruit » d'une caisse de pommes est sûr, mais y jeter une pastèque ne l'est pas.
- Generics et variance
- Les paramètres de type permettent à une classe ou interface de servir tous les types en sécurité ; la variance (out/in) décide quand un sous-type peut remplacer un type de base.
- paramètre de type <T>
- Un espace réservé de type que le code appelant remplit — Basket<Apple>, Basket<string> — appliqué par le compilateur à la compilation, sans cast.
- covariance (out)
- Quand T n'apparaît qu'en sortie, IProducer<Apple> est permis comme IProducer<Fruit> — tout ce qui sort est un fruit. La direction inverse, in, couvre un T en entrée seule.