Latest web development tutorials

C # pengindeks (Indexer)

Pengindeks (pengindeks) memungkinkan sebuah objek seperti array dapat diindeks.Saat menentukan pengindeks untuk kelas, tindakan kelas akan menjadi sepertiarray maya (array virtual) yang sama.Anda dapat menggunakan operator akses array ([]) untuk mengakses instance dari kelas.

tatabahasa

Sebuah pengindeksan dimensi sintaks berikut:

Unsur-jenis ini [int index] 
{
   // Dapatkan accessor get 
   {
      // Mengembalikan nilai indeks tertentu}

   // Set accessor ditetapkan 
   {
      // Mengatur nilai indeks tertentu}
}

Pengindeks (Indexer) penggunaan

Pernyataan bertindak dengan cara yang mirip dengan properti indexer (properti). Seperti properti (properti), yang dapat Anda gunakan untuk menentukan indeksset danpengakses. Namun, properti dikembalikan atau menetapkan anggota data tertentu, dan indeks kembali atau menetapkan contoh objek dengan nilai tertentu. Dengan kata lain, itu adalah contoh data dibagi menjadi bagian yang lebih kecil, dan setiap bagian dari indeks, mendapatkan atau mengatur setiap bagian.

Definisi atribut (properti) terdiri menyediakan nama properti. Ketika indeks tidak didefinisikan dengan nama, tapi dengan kunciini, yang menunjuk ke contoh objek.Contoh berikut menggambarkan konsep ini:

menggunakan System;
namespace IndexerApplication
{
   IndexedNames kelas
   {
      private string [] namelist = string baru [size];
      static size public int = 10;
      IndexedNames publik ()
      {
         for (int i = 0; i <ukuran; i ++)
         namelist [i] = "NA";
      }
      public string ini [int index]
      {
         mendapatkan
         {
            tali tmp;

            if (index> = 0 && index <= ukuran-1)
            {
               tmp = namelist [index];
            }
            lain
            {
               tmp = "";
            }

            kembali (tmp);
         }
         set
         {
            if (index> = 0 && index <= ukuran-1)
            {
               namelist [index] = nilai;
            }
         }
      }

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

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

Zara
Riz
Nuha
Asif
Davinder
Sunil
Rubic
nanana

Overload pengindeks (Indexer)

Pengindeks (pengindeks) mungkin kelebihan beban. Ketika pengindeks deklarasi juga dapat diberikan dengan sejumlah parameter, dan masing-masing parameter dapat dari jenis yang berbeda. Tidak perlu untuk indeks harus integer. C # memungkinkan pengindeks mungkin jenis lain, seperti tipe string.

Contoh berikut menunjukkan pengindeks kelebihan beban:

menggunakan System;
namespace IndexerApplication
{
   IndexedNames kelas
   {
      private string [] namelist = string baru [size];
      static size public int = 10;
      IndexedNames publik ()
      {
         for (int i = 0; i <ukuran; i ++)
         {
          namelist [i] = "NA";
         }
      }
      public string ini [int index]
      {
         mendapatkan
         {
            tali tmp;

            if (index> = 0 && index <= ukuran-1)
            {
               tmp = namelist [index];
            }
            lain
            {
               tmp = "";
            }

            kembali (tmp);
         }
         set
         {
            if (index> = 0 && index <= ukuran-1)
            {
               namelist [index] = nilai;
            }
         }
      }
      int publik ini [string name]
      {
         mendapatkan
         {
            int index = 0;
            sementara (indeks <ukuran)
            {
               if ([Indeks] namelist == nama)
               {
                kembali indeks;
               }
               Indeks ++;
            }
            kembali indeks;
         }

      }

      static void Main (string [] args)
      {
         nama IndexedNames = IndexedNames baru ();
         Nama-nama [0] = "Zara";
         nama [1] = "Riz";
         Nama-nama [2] = "Nuha";
         Nama-nama [3] = "Asif";
         Nama-nama [4] = "Davinder";
         Nama-nama [5] = "Sunil";
         Nama-nama [6] = "Rubic";
         // Gunakan parameter pertama dengan int pengindeks for (int i = 0; i <IndexedNames.size; i ++)
         {
            Console.WriteLine (nama [i]);
         }
         // Gunakan pengindeks kedua dengan parameter string Console.WriteLine (nama [ "Nuha"]);
         Console.ReadKey ();
      }
   }
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

Zara
Riz
Nuha
Asif
Davinder
Sunil
Rubic
nanana
2