Latest web development tutorials

C # Indexer (Indexer)

Indexer (Indexer) ermöglicht ein Objekt wie ein Array indiziert werden können.Wenn Sie einen Indexer für die Klasse definieren, wird Klasse verhält sich wie einvirtuelles Array (Virtual Array) sein derselben.Sie können den Array-Zugriffsoperator ([]) verwenden, um die Instanz der Klasse zuzugreifen.

Grammatik

Eine dreidimensionale Indizierung der folgenden Syntax:

Element-Typ dieser [int index] 
{
   // Get Accessor get 
   {
      // Gibt den Wert des angegebenen Index}

   // Set Accessor Set 
   {
      // Stellen Sie den Wert des angegebenen Index}
}

Indexer (Indexer) Anwendungen

Statement wirkt in ähnlicher Weise wie der Indexer Eigenschaft (Eigentum). Wie Eigenschaft (Eigentum), dass Sie dieIndexmenge definieren können und erhaltenAccessor. Allerdings ist die Eigenschaft zurückgegeben oder ein bestimmtes Datenelement gesetzt, und der Index zurückkehrt oder setzt die Objektinstanz auf einen bestimmten Wert. Mit anderen Worten, es ist die Instanz Daten in kleinere Teile aufgeteilt, und jeder Teil des Index oder jeden Abschnitt fertig.

Die Definition eines Attributs (Eigenschaft) umfasst die Namen der Eigenschaften bereitstellt. Wenn der Index nicht mit dem Namen definiert, aber mitdiesem Schlüssel, die auf die Objektinstanz zeigt.Das folgende Beispiel veranschaulicht dieses Konzept:

using System;
Namespace IndexerApplication
{
   Klasse IndexedNames
   {
      private string [] Namensliste = new string [size];
      statische public int size = 10;
      public IndexedNames ()
      {
         for (int i = 0; i <Größe; i ++)
         Namensliste [i] = "NA";
      }
      public string diese [int index]
      {
         erhalten
         {
            String tmp;

            if (index> = 0 && Index <= size-1)
            {
               tmp = namelist [index];
            }
            sonst
            {
               tmp = "";
            }

            return (tmp);
         }
         Set
         {
            if (index> = 0 && Index <= size-1)
            {
               Namensliste [index] = Wert;
            }
         }
      }

      static void Main (string [] args)
      {
         IndexedNames Namen = new IndexedNames ();
         Namen [0] = "Zara";
         Namen [1] = "Riz";
         Namen [2] = "Nuha";
         Namen [3] = "Asif";
         Namen [4] = "Davinder";
         Namen [5] = "Sunil";
         Namen [6] = "Rubic";
         for (int i = 0; i <IndexedNames.size; i ++)
         {
            Console.WriteLine (Namen [i]);
         }
         Console.ReadKey ();
      }
   }
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

Zara
Riz
Nuha
Asif
Davinder
Sunil
Rubic
nanana

Überladene Indexer (Indexer)

Indexer (Indexer) können überlastet werden. Wenn Indexer Erklärung kann auch mit einer Vielzahl von Parametern bereitgestellt werden, und jeder Parameter kann von verschiedenen Typen sein. Es besteht keine Notwendigkeit für den Index muss eine ganze Zahl sein. C # ermöglicht Indexer können andere Typen sein, wie String-Typ.

Das folgende Beispiel zeigt überladener Indexer:

using System;
Namespace IndexerApplication
{
   Klasse IndexedNames
   {
      private string [] Namensliste = new string [size];
      statische public int size = 10;
      public IndexedNames ()
      {
         for (int i = 0; i <Größe; i ++)
         {
          Namensliste [i] = "NA";
         }
      }
      public string diese [int index]
      {
         erhalten
         {
            String tmp;

            if (index> = 0 && Index <= size-1)
            {
               tmp = namelist [index];
            }
            sonst
            {
               tmp = "";
            }

            return (tmp);
         }
         Set
         {
            if (index> = 0 && Index <= size-1)
            {
               Namensliste [index] = Wert;
            }
         }
      }
      public int diese [string name]
      {
         erhalten
         {
            int index = 0;
            während (Index <size)
            {
               if (Namensliste [index] == name)
               {
                Return-Index;
               }
               Index ++;
            }
            Return-Index;
         }

      }

      static void Main (string [] args)
      {
         IndexedNames Namen = new IndexedNames ();
         Namen [0] = "Zara";
         Namen [1] = "Riz";
         Namen [2] = "Nuha";
         Namen [3] = "Asif";
         Namen [4] = "Davinder";
         Namen [5] = "Sunil";
         Namen [6] = "Rubic";
         // Den ersten Parameter mit int Indexer Verwenden Sie for (int i = 0; i <IndexedNames.size; i ++)
         {
            Console.WriteLine (Namen [i]);
         }
         // Verwenden Sie die zweite Indexer mit einem String-Parameter Console.WriteLine (Namen [ "Nuha"]);
         Console.ReadKey ();
      }
   }
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

Zara
Riz
Nuha
Asif
Davinder
Sunil
Rubic
nanana
2