Panduan Awal Mengenai Penggunaan Indexers di C

Hai, para pemula yang bersemangat! Hari ini, kita akan melangkah ke dunia menarik C# indexers. Jangan khawatir jika Anda baru dalam dunia pemrograman - saya akan menjadi panduan ramah Anda, menjelaskan segala sesuatu secara langkah demi langkah. mari kita masuk ke dalamnya!

C# - Indexers

Apa Itu Indexers?

Bayangkan Anda memiliki rak buku. Daripada mencari setiap buku untuk menemukan yang Anda inginkan, bagaimana kalau Anda dapat saja mengatakan "Berikan saya buku ke-3" atau "Berikan saya buku berjudul 'C# for Beginners'"? Itu tepat apa yang dilakukan indexers di C# - mereka menyediakan cara yang mudah untuk mengakses elemen dalam kelas yang mewakili koleksi nilai.

Sintaks Indexers

mari kita mulai dengan sintaks dasar dari indexer:

public Type this[Type index]
{
get { /* kembalikan nilai */ }
set { /* set nilai */ }
}

Jangan ter intimidasi oleh ini! mari kitauraikan:

  • public: Ini berarti indexer dapat diakses dari luar kelas.
  • Type: Ini adalah jenis nilai yang akan dikembalikan atau diatur oleh indexer.
  • this: Kata kunci ini digunakan untuk menentukan indexer.
  • [Type index]: Ini menentukan jenis dan nama parameter indeks.
  • get dan set: Ini adalah metode akses yang mengambil atau mengatur nilai.

Penggunaan Indexers

Sekarang, mari kita lihat indexers dalam aksi dengan contoh sederhana:

public class Bookshelf
{
private string[] books = new string[5];

public string this[int index]
{
get { return books[index]; }
set { books[index] = value; }
}
}

Dalam contoh ini, kita membuat kelas Bookshelf dengan indexer. Berikut adalah cara menggunakannya:

Bookshelf myShelf = new Bookshelf();
myShelf[0] = "C# for Beginners";
myShelf[1] = "Advanced C#";

Console.WriteLine(myShelf[0]); // Output: C# for Beginners

Apakah itu menarik? Kita dapat mengakses dan mengubah buku seperti yang kita lakukan dengan array, tetapi kita sebenarnya bekerja dengan kelas khusus!

Mengapa Menggunakan Indexers?

Anda mungkin berpikir, "Mengapa tidak hanya menggunakan array?" Well, indexers memberikan kita lebih banyak kontrol. Kita dapat menambah validasi, logging, atau logika khusus saat mengambil atau mengatur nilai. Misalnya:

public string this[int index]
{
get
{
if (index < 0 || index >= books.Length)
throw new IndexOutOfRangeException("Invalid book index!");
return books[index];
}
set
{
if (index < 0 || index >= books.Length)
throw new IndexOutOfRangeException("Invalid book index!");
books[index] = value;
}
}

Sekarang, jika seseorang mencoba mengakses buku yang tidak ada, mereka akan mendapat pesan kesalahan yang membantu daripada menghancurkan program!

Indexers Overloaded

Seperti method, indexers dapat di-overload. Ini berarti kita dapat memiliki beberapa indexers dengan jenis parameter yang berbeda. mari kita luaskan contoh Bookshelf:

public class Bookshelf
{
private string[] books = new string[5];

// Indexer dengan parameter int
public string this[int index]
{
get { return books[index]; }
set { books[index] = value; }
}

// Indexer dengan parameter string
public string this[string title]
{
get
{
return Array.Find(books, book => book == title);
}
set
{
int index = Array.FindIndex(books, book => book == title);
if (index >= 0)
books[index] = value;
}
}
}

Sekarang kita dapat mengakses buku berdasarkan indeks atau judul:

Bookshelf myShelf = new Bookshelf();
myShelf[0] = "C# for Beginners";
myShelf[1] = "Advanced C#";

Console.WriteLine(myShelf[0]); // Output: C# for Beginners
Console.WriteLine(myShelf["Advanced C#"]); // Output: Advanced C#

myShelf["C# for Beginners"] = "C# Mastery";
Console.WriteLine(myShelf[0]); // Output: C# Mastery

Apakah itu kuat? Kita sekarang dapat berinteraksi dengan Bookshelf kita dalam beberapa cara intuitif!

Tabel Metode Indexer

Berikut adalah tabel rujukan ringkas metode indexer yang kita bahas:

Metode Deskripsi Contoh
get Mengambil nilai pada indeks yang ditentukan return books[index];
set Mengatur nilai pada indeks yang ditentukan books[index] = value;

Kesimpulan

Dan itu lah! Kita telah mengeksplorasi dunia C# indexers, dari sintaks dasar hingga indexers overloaded. Ingat, indexers adalah alat kuat yang dapat membuat kode Anda lebih intuitif dan mudah digunakan. Mereka seperti sihir yang mengubah kelas Anda menjadi koleksi yang mudah digunakan.

Sekarang, saat Anda terus melanjutkan perjalanan pemrograman Anda, Anda akan menemukan banyak fitur menarik lainnya di C#. Tetapi untuk saat ini, pukul diri Anda - Anda baru saja menguasai indexers! Terus latih, tetap curiga, dan selamat pemrograman!

Credits: Image by storyset