Najlepszy samouczek C # podziałowe (Indexer) W 2024 r. W tym samouczku możesz dowiedzieć się gramatyka,Indexer (Indexer) korzysta,Przeciążony podziałowe (Indexer),
Indexer (Indexer) umożliwia przedmiot podobny tablicy mogą być indeksowane.Podczas definiowania podziałowe do klasy, działa klasa będzie jaktablicy wirtualnej (Virtual Array) to samo.Można użyć operatora dostępu do tablicy ([]), aby uzyskać dostęp do instancji klasy.
Wymiarową indeksowanie następującą składnię:
Element tego typu [int index] { // Pobierz akcesor get { // Zwraca wartość określonego indeksu} // Ustaw akcesor set { // Ustaw wartość określonego indeksu} }
Oświadczenie działa w sposób podobny do właściwości indeksatora (mienia). Podobnie jak nieruchomości (nieruchomości), które można wykorzystać do określeniazestawu indeksu i uzyskaćAkcesor. Jednakże, obiekt jest zwracany lub ustawić konkretny element danych, a powraca indeksu lub ustawia instancję obiektu do określonej wartości. Innymi słowy, jest podzielony na mniejsze części danych przykład, a każda część indeksu się lub ustawić każdą sekcję.
Definicja atrybutu (mienia) obejmuje dostarczenie nazwy właściwości. Jeśli indeks nie jest zdefiniowana z nazwą, ale ztego klucza, co wskazuje na wystąpienie obiektu.Poniższy przykład ilustruje tę koncepcję:
using System; nazw IndexerApplication { IndexedNames klasy { private string [] z listą nazw = new string [rozmiar]; public static int size = 10; IndexedNames publiczne () { for (int i = 0; i <rozmiar; i ++) z listą nazw [i] = "NA"; } public string to [int index] { dostać { tmp ciąg; if (indeks> = 0 && indeksu <= rozmiar-1) { tmp = listą nazw [indeks]; } więcej { tmp = ""; } return (TMP); } zestaw { if (indeks> = 0 && indeksu <= rozmiar-1) { z listą nazw [indeks] = wartość; } } } static void Main (string [] args) { IndexedNames imiona = new IndexedNames (); Nazwy [0] = "Zara"; Nazwy [1] = "Riz"; nazw [2] = "Nuha"; Nazwy [3] = "Asif"; Nazwy [4] = "Davinder"; Nazwy [5] = "Sunil"; Nazwy [6] = "Rubic"; for (int i = 0; i <IndexedNames.size; i ++) { Console.WriteLine (nazwy [i]); } Console.ReadKey (); } } }
Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:
Zara Riz Nuha Asif Davinder Sunil Rubic nanana
Indexer (Indexer) może być przeciążony. Gdy zgłoszenie podziałowe może być również wyposażony w wiele parametrów, a każdy z parametrów mogą być różnych typów. Nie ma potrzeby stosowania wskaźnika musi być liczbą całkowitą. C # pozwala indeksujący Mogą być też inne typy, takie jak typ strun.
Poniższy przykład demonstruje przeciążony indeksowania:
using System; nazw IndexerApplication { IndexedNames klasy { private string [] z listą nazw = new string [rozmiar]; public static int size = 10; IndexedNames publiczne () { for (int i = 0; i <rozmiar; i ++) { z listą nazw [i] = "NA"; } } public string to [int index] { dostać { tmp ciąg; if (indeks> = 0 && indeksu <= rozmiar-1) { tmp = listą nazw [indeks]; } więcej { tmp = ""; } return (TMP); } zestaw { if (indeks> = 0 && indeksu <= rozmiar-1) { z listą nazw [indeks] = wartość; } } } public int to [string name] { dostać { int index = 0; while (index <rozmiar) { if (z listą nazw [indeks] == nazwa) { powrót indeksu; } Indeks ++; } powrót indeksu; } } static void Main (string [] args) { IndexedNames imiona = new IndexedNames (); Nazwy [0] = "Zara"; Nazwy [1] = "Riz"; nazw [2] = "Nuha"; Nazwy [3] = "Asif"; Nazwy [4] = "Davinder"; Nazwy [5] = "Sunil"; Nazwy [6] = "Rubic"; // Użyj pierwszy parametr z int indekser for (int i = 0; i <IndexedNames.size; i ++) { Console.WriteLine (nazwy [i]); } // Użyj drugi podziałowe z Console.WriteLine parametru ciąg (nazwy [ "Nuha"]); Console.ReadKey (); } } }
Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:
Zara Riz Nuha Asif Davinder Sunil Rubic nanana 2