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ć):