Indeksatory w języku C#

Indeksator - odwołanie do tablicy w klasie.


Indeksatory pozwalają odwoływać się do tablicy zadeklarowanej w klasie. Składnia jest bardzo podobna do właściwości. W klasie zawierającej indeksator możemy mieć zadeklarowaną tylko jedną tablice, do której odwołujemy się poprzez nazwę obiektu i indeks. Podobnie jak właściwości, indeksator musi zawierać co najmniej jedną deklaracje dostępu get lub set.

Składnia indeksatorów:

[modyfikatory] typ this[argumenty_indeksów]
{
     deklaracje_dostępu
}
gdzie:
  • modyfikatory - dostępne są modyfikatory: new, virtual, abstract, sealed, extern, override oraz wszystkie modyfikatory dostępu (opcjonalne),
  • typ - typ danych zwracanych przez indeksator (wymagane),
  • argumenty_indeksu- lista argumentów w formacie: typ nazwa,
  • deklaracje_dostępu - blok get i/lub set, wymagany jest przynajmniej jeden z bloków get lub set.

Przykładowy kod indeksatora:

public string this[int indeks]
{
    get
    {
        return this.lista[indeks - 1];
    }

    set
    {
        this.lista[indeks-1] = value;
    }
}

Pozostałe informacje:

  • indeksatory używają takiej samej notacji jak tablice jednak mogą używać różnych typów jako indeksów (nie tylko liczb całkowitych jak to ma miejsce przy tablicach),
  • indeksatory można przeciążać, czyli można stworzyć kilka indeksatorów o różnych typach indeksów,
  • indeksator musi posiadać przynajmniej jeden argument indeksujący, który jest przekazywany przez wartość (może posiadać ich więcej),
  • nie można tworzyć statycznych indeksatorów, ponieważ indeksatory są powiązane z obiektami, czyli instancjami klasy,
  • indeksatory mogą być przekazywane jako argumenty do metod tylko przez wartość, nie mogą być przekazywane przez referencje (ref) i wyjście (out).

Więcej informacji na temat indeksatorów:

http://msdn.microsoft.com/pl-pl/library/6x16t2tx.aspx
Komentarze facebook (polub nasz profil na FB aby je zobaczyć):