Maison  >  Article  >  développement back-end  >  Une analyse approfondie de la différence entre IList et List en C#

Une analyse approfondie de la différence entre IList et List en C#

高洛峰
高洛峰original
2017-01-19 11:51:361357parcourir

Quand j'écrivais le code, j'avais quelques doutes sur :
IList IList11 =new List ();
List List11 =new List ();

, j'ai donc cherché sur le Internet et j'ai été très inspiré. Je l'ai donc sauvegardé, mais je ne suis pas d'accord avec certains points de vue, j'ai donc marqué mes points de vue en rouge !

Tout d'abord, l'interface générique IList est une descendante de l'interface générique ICollection et constitue l'interface de base de toutes les listes génériques.
Il s'agit simplement d'une interface pour tous les types génériques, et il n'y a pas beaucoup de méthodes pratiques et pratiques si elle n'est utilisée que comme support de données de collecte, en effet, IList peut faire le travail.
Cependant, le plus souvent, nous devons traiter les données de collecte, filtrer ou trier les données. En ce moment, IList est impuissant.

1. Lorsque vous souhaitez utiliser uniquement des méthodes d'interface, ILis<> est préférable. Il n'obtient pas d'autres méthodes et champs de la classe qui implémente cette interface, économisant ainsi de l'espace. (Puisqu'une sous-classe hérite de la classe parent et possède ses propres attributs et méthodes, ceux-ci devraient et doivent être présents après la sortie de la sous-classe NEW, qu'ils soient placés dans les variables de la classe parent ou dans des variables de son propre type, sinon Si vous transformez vers le haut puis vers le bas, les données seront perdues, ce qui est terrible ! )

2. IList <> est une interface qui définit certaines méthodes de fonctionnement que vous devez implémenter par vous-même. > est une classe générique, qui a implémenté les méthodes définies par IList <>

IList IList11 =new List ();
List List11 =new List ();

D'un point de vue opérationnel, ces deux lignes de code créent en réalité une instance d'un objet List, c'est-à-dire qu'il n'y a aucune différence dans leurs opérations.
C'est juste que le type de variable de valeur de retour utilisé pour enregistrer cette opération est différent.
On peut donc comprendre que le but de ces deux lignes de code est différent.
List List11 =new List ();
Je souhaite créer une liste et je dois utiliser les fonctions de List pour effectuer les opérations associées.
Et IList IList11 =new List ();
Je veux juste créer une instance d'un objet basée sur l'interface IList, mais cette interface est implémentée par List. Il espère donc simplement utiliser les fonctions spécifiées par l'interface IList

Pour une analyse plus approfondie des différences entre IList et List en C#, veuillez faire attention au site Web PHP chinois !

Déclaration:
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