Il semble y avoir certaines classes de collecte dans System.Collections.Objectmodel. Quelle est la différence entre les collections sous ces deux espaces de noms et dans quel scénario devrions utiliser System.collections.Objectmodel? P>
3 Réponses :
de MSDN : P>
Le système.Collections.Objectmodel Espace de noms contient des cours qui peuvent être utilisé comme collections dans l'objet modèle d'une bibliothèque réutilisable. Utilisez ceux-ci classes lorsque des propriétés ou des méthodes Renvoyer des collections. P> blockQuote>
Plus un pour le lien vers 'Pourquoi' Je viens d'ouvrir un code sur lequel le System.Collections.Objectmodel.collection code> était utilisé et clairement qu'ils ne sont pas censés être utilisés.
Je sais que c'est vieux, mais le lien n'est pas à jour et j'étais intéressé par le contenu. Trouvé sur l'archive Internet et le partageez-le web.archive.org/web/20151030064839/http://blogs.msdn.com/b/...
Une différence évidente est que le Système. Collections.ObjectModel code>
Espace de noms contient générique
Collections réadonnées (c'est-à-dire sans l'ajout, retirer et claire des méthodes, etc.). P>
System.Collections.Objectmodel code >
cours sont utiles pour exposer vos collections au monde extérieur. (En dehors du monde, je parle du code qui n'a pas la version avec votre code.) P>
Utilisez donc des classes de collecte génériques dans votre code, mais enveloppez-la dans un Collection
, Readonlycollection
ou Observablecollection
Lorsque vous souhaitez l'exposer au monde extérieur. P>
Pour envelopper une collection en tant que collection clé, le KeyedCollection code>
peut être utilisé comme classe de base pour une aide. P>