J'ai trouvé beaucoup de documents et de recommandations sur IEnumerator
, IEnumerable
, ICollection
, IList
et leurs homologues génériques. Malheureusement, je n'ai pas encore trouvé un tutoriel ou un livre qui explique toute la hiérarchie des interfaces, les implémentations génériques de ces interfaces et la meilleure utilisation de chaque type de ceux-ci. Quelle était votre meilleure source de connaissances sur les génériques, leurs interfaces et les exemples d'utilisation recommandée de ceux en C#?Quelle est votre meilleure ressource sur les génériques et leurs interfaces?
Répondre
La principale façon dont je suis venu à les comprendre était juste en regardant leurs interfaces.
L'héritage va comme ceci:
IList: ICollection: IEnumerable
Lorsque vous regardez l'interface IEnumerable, notez qu'il n'a que le strict minimum nécessaire pour pouvoir faire une boucle à travers un tas d'articles. Il n'a pas de compte ou autre chose. IEnumerable fonctionne bien même si ce que vous regardez est juste un flux venant sur un fil.
ICollection ajoute Count. Si vous mettez en place une sorte de collection, et si vous en connaissez la taille, vous devez l'implémenter. Dans ce cas, l'interface générique est un peu différente. ICollection <T> a également des méthodes pour modifier la collection en ajoutant et en supprimant des membres. Un ensemble non ordonné serait un bon candidat pour ICollection. IList ajoute la possibilité d'obtenir et de définir des membres de collection par index. Utilisez ceci quand l'ordre des articles est significatif. Lorsque vous avez des index, vous pouvez faire des choses comme échanger les 4e et 5e articles pour changer leur ordre.
vous venez de manquer un :)
IDictionary: IList: ICollection: IEnumerable
IDictionary est un peu différent des autres interfaces - il semble être juste une collection de paires clé/valeur (même fonctionnalité que ICollection
- 1. Quelle est la meilleure ressource pour la programmation BlackBerry CLDC?
- 2. énumération des génériques et des interfaces
- 3. Utilisation de génériques dans les interfaces
- 4. Quelle est votre opinion sur Castle ActiveRecord?
- 5. Versions non génériques de classes et interfaces génériques
- 6. Quelle est la meilleure méthode pour recueillir des données sur l'utilisation de votre application?
- 7. Quelle est votre étonnante révélation?
- 8. Quelle est la meilleure ressource gratuite pour en savoir plus sur Ms IIS?
- 9. Quelle est votre méthode de marquage "folksonomy" pour les fichiers sur votre machine locale?
- 10. Quelle est la meilleure ressource pour apprendre le langage d'assemblage pour les microcontrôleurs PIC
- 11. Question sur les indexeurs et/ou génériques
- 12. Héritage .NET avec des interfaces génériques
- 13. Dans .NET, Quelle est la différence entre une ressource intégrée et une ressource?
- 14. Quelle est votre visionneuse/moniteur log4 préférée?
- 15. Interfaces avec Génériques - Réglage à NIL
- 16. Comment enregistrer des interfaces génériques dans StructureMap
- 17. Quelle est votre expérience de Devtrack?
- 18. Quelle est votre expérience avec ARM Jazelle?
- 19. Quelle est votre fonctionnalité préférée dans .NET?
- 20. question sur les interfaces java
- 21. Quelle est la meilleure ressource pour l'apprentissage des outils de studio visuel?
- 22. Quelle est votre opinion de Groovy?
- 23. Interfaces et versioning
- 24. En C#, quelle est la meilleure façon d'enchaîner les constructeurs?
- 25. Quelle est la meilleure façon de dessiner des objets et de les traiter?
- 26. Quelle est la meilleure façon de déterminer le nom de votre machine dans une application .NET?
- 27. Android: Meilleure pratique pour les interfaces utilisateur sensibles
- 28. Quelle est la structure de votre répertoire de développement logiciel?
- 29. Quelle est votre stratégie préférée pour aborder les rapports dans les projets ruby?
- 30. Enum et leurs valeurs
Vous devez rebaliser ce soit collections. Les génériques ne sont pas toujours utilisés pour les collections. –