Maison > développement back-end > C++ > Comment C# 4.0 gère-t-il la covariance et la contravariance génériques ?

Comment C# 4.0 gère-t-il la covariance et la contravariance génériques ?

Linda Hamilton
Libérer: 2025-01-25 00:26:08
original
959 Les gens l'ont consulté

How Does C# 4.0 Handle Generic Covariance and Contravariance?

dans la compréhension de la collaboration génétique et de l'onduleur en C # 4.0

Dans la première version de C #, le type générique ne prend pas en charge la collaboration ou l'onduleur, ce qui apportera des restrictions lors de l'agrégation de la relation parent -child. Cependant, C # 4.0 a introduit le support de ces concepts sous des contraintes spécifiques.

La coordination dans l'interface

Le type collaboratif permet aux types génériques d'accepter les dérivés comme paramètres. Pour l'interface, utilisez la spécification des mots clés "Out". Par exemple, si nous avons une interface , ce qui signifie que l'interface permet uniquement la valeur du type de récupération à T. Cela nous permet de retourner

de l'instruction à la méthode de retour

. IEnumerable<out T> IEnumerable<object> Révélation de la Commission IEnumerable<string>

L'onduleur permet au type générique d'accepter le type de base comme paramètre. Pour la commission, utilisez des mots clés "dans". Considérez Commission. Cela signifie une méthode pour accepter un paramètre de T Type T. Vous pouvez maintenant utiliser comme , car la méthode d'attente d'objets peut toujours fonctionner normalement lors du passage de la chaîne.

Implémentez les détails Action<in T> Action<object> Le support de variance dans Action<string> C # 4.0 est réalisé à travers la fonction de l'exécution (CLR) pendant la langue publique. Le compilateur vérifiera l'utilisation correcte de l'interface et la variance sur la détention. Plus précisément, l'interface ne peut utiliser "OUT" que pour les paramètres de sortie uniquement, et la configuration doit utiliser "dans" pour uniquement les paramètres d'entrée (setter).

Assurez-vous que le type est sûr

Bien que la différence entre la variance de support C # 4.0, elle est réalisée de manière sûre. Le compilateur garantit que tout code qui essaie de violer la contrainte de type sera rejeté. Cela empêche la liste des bananes d'être forcés d'être convertis en liste de fruits, qui n'est pas valide.

Résumé

C # 4.0 La coordination génétique et l'onduleur dans le rejet du type du type du type de destin offrent une flexibilité plus élevée et une réutilisabilité du code. Il permet aux développeurs d'utiliser de manière transparente l'interface et la commission qui expriment la relation entre les types de père et de fils.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal