Tartalomjegyzék:
Meghatározás - Mit jelent az Iterator?
Az iterátor a C # kontextusában egy olyan kódblokk, amely egy gyűjtemény vagy tömb rendezett értékrendjét adja vissza. Ez egy iterátor blokk használatával megvalósított tagfüggvény, amely egy vagy több kifejezést tartalmaz a "hozam" kulcsszóval.
Az iterátort arra használják, hogy egy konténerosztályú - gyűjteményt vagy tömböt tartalmazó - fogyasztókat egyszerűbb módon a "foreach" nyilatkozat segítségével áthaladhassanak a gyűjteményen. Erősen tipizált gyűjtemény-osztályokkal használják olyan komplex adatszerkezetek iterálására, mint például a bináris fák, amelyek rekurzív áthaladást igényelnek, és a rekuráción keresztül fenntartják az iterációs állapotot. Az iterátor fogalmát a halasztott végrehajtás LINQ lekérdezésekben történő végrehajtására is használják.
A Techopedia magyarázza az Iterátort
Az iterátor egy olyan tervezési mintán alapszik, amely módszert biztosít az elemgyűjtemény elemeinek egymás utáni áthaladására anélkül, hogy a gyűjtemény mögöttes struktúráját feltárná. Ez kiküszöböli az "IEnumerator" felület kézi megvalósításának fárasztó feladatát, amikor az "foreach" utasítást támogató gyűjteményosztályokat hoz létre. Az IEnumerator interfész módszereinek és tulajdonságainak megvalósításához szükséges közbenső nyelvi kódot a fordító generálja, amelynek eredményeként egyszerűbb a szintaxis, csökken a kódméret, és javul a fejlesztői hatékonyság.
Általában az iterátor hasonló az adatbázis kurzorához, mivel hozzáférést biztosít a gyűjtemény adatelemeinek, de nem hajtja végre az iterációt. Az iterátort a C # -ben megvalósíthatjuk módszerként, operátorként vagy hozzáférési hozzáférõként. Például egy iterator felhasználható a karakterláncok gyűjteményének áthaladására a gyűjtemény egyes karakterláncainak tartalmának megjelenítéséhez.
Az iterátort az IEnumerator interfész képviseli, és a fordító az alábbi módszerekkel valósítja meg:
- MoveNext: A módszer a gyűjtemény következő elemére lép, és jelzi a gyűjtemény végét
- Jelenlegi: Olyan tulajdonság, amely lekérdezi a jelenleg mutatott elem értékét
- Hulladékkezelés: Megtisztítja az iterációt
