Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

C# - Pengindeks

Sebuah pengindeks memungkinkan objek untuk diindeks seperti array. Saat Anda mendefinisikan pengindeks untuk suatu kelas, kelas ini berperilaku mirip dengan array virtual . Anda kemudian dapat mengakses instance kelas ini menggunakan operator akses array ([ ]).

Sintaks

Pengindeks satu dimensi memiliki sintaks berikut −

element-type this[int index] {

   // The get accessor.
   get {
      // return the value specified by index
   }
   
   // The set accessor.
   set {
      // set the value specified by index
   }
}

Penggunaan Pengindeks

Deklarasi perilaku pengindeks sampai batas tertentu mirip dengan properti. mirip dengan properti, Anda menggunakan get dan setel pengakses untuk mendefinisikan pengindeks. Namun, properti mengembalikan atau menetapkan anggota data tertentu, sedangkan pengindeks mengembalikan atau menetapkan nilai tertentu dari instance objek. Dengan kata lain, ini memecah data instance menjadi bagian-bagian yang lebih kecil dan mengindeks setiap bagian, mendapatkan atau menetapkan setiap bagian.

Mendefinisikan properti melibatkan pemberian nama properti. Pengindeks tidak didefinisikan dengan nama, tetapi dengan ini kata kunci, yang mengacu pada instance objek. Contoh berikut menunjukkan konsep

Demo Langsung
using System;

namespace IndexerApplication {
   
   class IndexedNames {
      private string[] namelist = new string[size];
      static public int size = 10;
      
      public IndexedNames() {
         for (int i = 0; i < size; i++)
         namelist[i] = "N. A.";
      }
      public string this[int index] {
         get {
            string tmp;
         
            if( index >= 0 && index <= size-1 ) {
               tmp = namelist[index];
            } else {
               tmp = "";
            }
            
            return ( tmp );
         }
         set {
            if( index >= 0 && index <= size-1 ) {
               namelist[index] = value;
            }
         }
      }
      static void Main(string[] args) {
         IndexedNames names = new IndexedNames();
         names[0] = "Zara";
         names[1] = "Riz";
         names[2] = "Nuha";
         names[3] = "Asif";
         names[4] = "Davinder";
         names[5] = "Sunil";
         names[6] = "Rubic";
         
         for ( int i = 0; i < IndexedNames.size; i++ ) {
            Console.WriteLine(names[i]);
         }
         Console.ReadKey();
      }
   }
}

Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut

Zara
Riz
Nuha
Asif
Davinder
Sunil
Rubic
N. A.
N. A.
N. A.

Pengindeks Kelebihan Beban

Pengindeks dapat kelebihan beban. Pengindeks juga dapat dideklarasikan dengan beberapa parameter dan setiap parameter mungkin memiliki tipe yang berbeda. Indeks tidak harus berupa bilangan bulat. C# memungkinkan indeks menjadi tipe lain, misalnya, string.

Contoh berikut menunjukkan pengindeks kelebihan beban −

Demo Langsung
using System;

namespace IndexerApplication {
   class IndexedNames {
      private string[] namelist = new string[size];
      static public int size = 10;
      
      public IndexedNames() {
         for (int i = 0; i < size; i++) {
            namelist[i] = "N. A.";
         }
      }
      public string this[int index] {
         get {
            string tmp;
            
            if( index >= 0 && index <= size-1 ) {
               tmp = namelist[index];
            } else {
               tmp = "";
            }
            
            return ( tmp );
         }
         set {
            if( index >= 0 && index <= size-1 ) {
               namelist[index] = value;
            }
         }
      }
      
      public int this[string name] {
         get {
            int index = 0;
            
            while(index < size) {
               if (namelist[index] == name) {
                return index;
               }
               index++;
            }
            return index;
         }
      }

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

Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut

Zara
Riz
Nuha
Asif
Davinder
Sunil
Rubic
N. A.
N. A.
N. A.
2

Bahasa C

  1. C# Hello World - Program C# Pertama Anda
  2. C# Kata Kunci dan Pengidentifikasi
  3. Variabel C# dan Tipe Data (Primitif)
  4. C# Operator
  5. C# Bitwise dan Bit Shift Operator
  6. C# Input dan Output Dasar
  7. C# Ekspresi, Pernyataan, dan Blok (Dengan Contoh)
  8. C# Komentar
  9. Pernyataan sakelar C#
  10. C# ternary (? :) Operator