Implémentation de l'interface IList
Je suis nouveau sur les génériques. Je veux implémenter mon propre collection en le dérivant de IList<T>
interface.
Pouvez-vous svp me donner un lien pour une classe qui implémente IList<T>
interface ou me fournir un code qu'au moins implémente Add
et Remove
méthodes?
source d'informationauteur Ashish Ashu
Vous devez vous connecter pour publier un commentaire.
À moins d'avoir une raison impérieuse de le faire, votre meilleur pari sera hériter de
System.Collections.ObjectModel.Collection<T>
car il a tout ce dont vous avez besoin.Veuillez noter que, bien que les réalisateurs de
IList<T>
ne sont pas tenus de mettre en œuvrethis[int]
(indexer) à O(1) (en gros, constante de temps d'accès), il est fortement recommandé de le faire.En outre à l'élaboration de
List<T>
vous pouvez façadeList<T>
et ajouter plus de fonctionnalités à votre façade de la classe.Vous pouvez regarder Mono projet. Il est disponible complète des codes source, sou, vous pouvez regarder comment sont certaines classes mises en œuvre. Par exemple "le Système de.Les Collections.Les génériques.Liste<T>".
Dans la plupart des cas, vous pouvez simplement utiliser
List<T>
ou dériver deList<T>
. Si vous dérivez deList<T>
vous obtiendrez automatiquement la mise en œuvre pour Ajouter et Supprimer.Héritant de la Liste est souvent la méthode la plus rapide mais qui peut être limitant plus tard en bas de la ligne si vous avez besoin d'hériter d'une autre classe (par exemple, ContextBoundObject etc.). C'est assez rapide à mettre en œuvre IList et comme l'a souligné ci-dessus, il donne beaucoup plus de flexibilité.