Indexers în C #
Indexers în C #
In acest articol voi vorbi despre ceea ce indexatori de ce au nevoie, cum și când să le utilizeze în programele scrise în C #. Și astfel, indexatorii trebuie să atunci când am scrie o clasă care se comportă ca un fel de colectare, de exemplu, există o matrice de câmp, cum ar fi o clasă:
După cum se poate observa din exemplul din clasă este câmpul-matrice are un constructor care setează dimensiunea matrice, și o proprietate care returnează dimensiunea unei matrice de „lumea exterioară“. Dar noi trebuie, de asemenea, încă aranja într-un fel accesul la elementele de matrice la clasa noastra, utilizatorii pot modifica și de a primi conținutul matrice interne. Există cu siguranță, este posibil să se scrie câteva metode vor returna un element de valoare a spus, în metoda ca un argument, indicele, iar cea de a doua metodă este de a stabili valoarea specificată (în același mod) a elementului. Și ar arăta ceva de genul:
Și utilizarea obiectelor din această clasă ar putea arata astfel:
Puteți crea un proiect nou, și verificați cazul în practică ... Dar putem rezolva problema de a oferi acces la elementele de matrice built-in de obiect mult mai elegant! Aici vom folosi Indexers. Să adăugăm la indexor noastre de clasă, și va arăta astfel:
După cum puteți vedea, este foarte similar cu o proprietate indexor, dar ar trebui să aibă un anumit nume de «acest» și un parametru suplimentar între paranteze pătrate (care nu are proprietățile obișnuite).
În general, acest lucru - acest cuvânt cheie în C # și este de o importanță deosebită (utilizate nu numai pentru a indexatorii), care cumva spun într-un singur articol.
Acest parametru opțional este utilizat ca un index pentru a accesa matrice interior. Utilizarea unei clase de obiecte la care am adăugat indexatorul arata ca folosind matrice:
Sunt de acord această versiune este mai scurtă și mai convenabil! Ei bine, atâta timp cât suficiente informații despre indexatori cumva am plantat mai multe despre ele ...