Turinys:
Apibrėžimas - ką reiškia Iteratorius?
Iteratorius C # kontekste yra kodo blokas, kuris grąžina užsakytą rinkinio ar masyvo reikšmių seką. Tai yra nario funkcija, įgyvendinama naudojant iteratoriaus bloką, kuriame yra vienas ar daugiau teiginių, kuriuose yra raktinis žodis „išeiga“.
Iteratorius naudojamas tam, kad konteinerių klasės, turinčios kolekciją ar masyvą, vartotojai galėtų paprasčiau aprašyti kolekciją, naudodamiesi teiginiu „foreach“. Jis naudojamas su griežtai įvestomis kolekcijų klasėmis, norint pakartoti sudėtingas duomenų struktūras, tokias kaip dvejetainiai medžiai, kuriems reikalingas rekursinis perėjimas ir palaikoma iteracijos būsena per rekursiją. Iteratoriaus sąvoka taip pat naudojama įgyvendinant atidėtą vykdymą LINQ užklausose.
„Techopedia“ paaiškina Iteratorius
Iteratorius grindžiamas dizaino modeliu, kuris suteikia metodą, leidžiantį sekti elementų kolekcijos elementus iš eilės, neatskleidžiant pagrindinės kolekcijos struktūros. Tai pašalina varginančią užduotį rankiniu būdu įdiegti „IEnumerator“ sąsają kuriant kolekcijos klases, palaikančias „foreach“ teiginį. Tarpinis kalbos kodas, būtinas „IEnumerator“ sąsajos metodams ir savybėms įgyvendinti, yra generuojamas kompiliatoriaus, dėl kurio paprastesnė sintaksė, sumažintas kodo dydis ir patobulintas kūrėjo produktyvumas.
Apskritai iteratorius yra panašus į duomenų bazės žymeklį tuo, kad suteikia prieigą prie duomenų elementų kolekcijoje, bet neatlieka iteracijos. Iteratorius gali būti įgyvendintas C # kaip metodas, operatorius arba gauti prieigą. Pvz., Iteratorius gali būti naudojamas styginių rinkiniui perbraukti, kad būtų parodytas kiekvienos kolekcijos eilutės turinys.
Iteratorių vaizduoja IEnumerator sąsaja, o kompiliatorius jį įgyvendina šiais metodais:
- „MoveNext“: metodas, pereinantis prie kito kolekcijos elemento ir nurodantis tos kolekcijos pabaigą
- Dabartinis: nuosavybė, kuri gauna elemento, į kurį šiuo metu nurodoma, vertę
- Išmeskite: išvalo iteraciją
