Heim  >  Artikel  >  Backend-Entwicklung  >  Eine eingehende Analyse des Unterschieds zwischen IList und List in C#

Eine eingehende Analyse des Unterschieds zwischen IList und List in C#

高洛峰
高洛峰Original
2017-01-19 11:51:361361Durchsuche

Als ich den Code schrieb, hatte ich einige Zweifel an:
IList IList11 =new List ();
List List11 =new List ();

, also habe ich danach gesucht Internet und war sehr inspiriert, also habe ich es gespeichert, aber ich bin mit einigen Ansichten nicht einverstanden, also habe ich meine Ansichten in roter Schrift markiert!

Erstens ist die generische Schnittstelle IList ein Nachkomme der generischen Schnittstelle ICollection und die Basisschnittstelle für alle generischen Listen.
Es handelt sich lediglich um eine Schnittstelle für alle generischen Typen, und es gibt nicht viele Methoden, die praktisch und praktisch sind. Wenn es nur als Träger von Erfassungsdaten verwendet wird, kann IList die Aufgabe tatsächlich erfüllen.
Häufiger müssen wir jedoch Sammlungsdaten verarbeiten, die Daten filtern oder sortieren. Zu diesem Zeitpunkt ist IList hilflos.

1. Wenn Sie nur Schnittstellenmethoden verwenden möchten, ist es besser, keine anderen Methoden und Felder der Klasse abzurufen, die diese Schnittstelle implementiert. (Da eine Unterklasse die übergeordnete Klasse erbt und über eigene Attribute und Methoden verfügt, sollten und müssen diese nach Erscheinen der Unterklasse NEW vorhanden sein, unabhängig davon, ob sie in den Variablen der übergeordneten Klasse oder in Variablen ihres eigenen Typs platziert werden, andernfalls If Wenn Sie nach oben und dann nach unten transformieren, gehen die Daten verloren.

2. IList <> > ist eine generische Klasse, die die von IList <> definierten Methoden implementiert hat.

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

Aus betrieblicher Sicht erstellen diese beiden Codezeilen tatsächlich eine Instanz eines List-Objekts, das heißt, es gibt keinen Unterschied in ihren Operationen.
Es ist nur so, dass der Typ der Rückgabewertvariable, der zum Speichern dieses Vorgangs verwendet wird, ein anderer ist.
Wir können also verstehen, dass die Zwecke dieser beiden Codezeilen unterschiedlich sind.
List List11 =new List ();
Ich möchte eine Liste erstellen und muss die Funktionen von List verwenden, um verwandte Vorgänge auszuführen.
Und IList IList11 =new List ();
Ich möchte nur eine Instanz eines Objekts basierend auf der Schnittstelle IList erstellen, aber diese Schnittstelle wird von List implementiert. Es werden also lediglich die von der IList-Schnittstelle angegebenen Funktionen genutzt.

Für eine detailliertere Analyse der Unterschiede zwischen IList in C# schauen Sie sich bitte die chinesische PHP-Website an!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn