Panduan Menyenaraikan Delegasi dalam C#: Panduan Untuk Pemula
Hai sana, bakal bintang pengkomputeran! Hari ini, kita akan melantikan masuk ke dunia yang menarik delegasi C#. Jangan khawatir jika Anda belum pernah mendengar tentang mereka sebelumnya - pada akhir panduan ini, Anda akan menjadi ahli delegasi! Mari kita mulai perjalanan yang menarik ini bersama-sama.
Apa Itu Delegasi?
Bayangkan Anda sedang mengatur sebuah pesta dan Anda perlu seseorang untuk mengurus musik. Alih-alih melakukan itu sendiri, Anda menyerahkan tugas ini kepada teman Anda yang seorang DJ. Dalam C#, delegasi bekerja secara mirip - mereka seperti kurir kecil yang dapat menahan dan memanggil method bagi kita.
Dalam istilah yang lebih sederhana, delegasi adalah jenis yang mewakili referensi ke method dengan daftar parameter tertentu dan jenis kembalian. Bayangkan itu seperti rancangan untuk method.
Menyatakan Delegasi
Mari kita mulai dengan belajar bagaimana menyatakan delegasi. Sintaksanya cukup sederhana:
public delegate void SimpleDelegate();
Ini menyatakan delegasi bernama SimpleDelegate
yang dapat merujuk ke method yang tidak menerima parameter dan mengembalikan nihil (void).
Ini adalah contoh lainnya:
public delegate int MathDelegate(int x, int y);
MathDelegate
ini dapat merujuk ke method yang menerima dua integer dan mengembalikan integer.
Menginstansiasi Delegasi
Sekarang kita telah menyatakan delegasi kita, mari kita lihat bagaimana menggunakannya. Kita akan mulai dengan membuat method yang cocok dengan tanda tangan delegasi kita:
public static void SayHello()
{
Console.WriteLine("Hello, Delegates!");
}
// Menginstansiasi delegasi
SimpleDelegate greet = new SimpleDelegate(SayHello);
// Memanggil delegasi
greet();
Ketika kita menjalankan kode ini, ia akan mencetak: "Hello, Delegates!"
Mari kitauraikan ini:
- Kita menetapkan method
SayHello
yang cocok dengan tanda tanganSimpleDelegate
. - Kita membuat instance
SimpleDelegate
dan menugaskan methodSayHello
kepadanya. - Kita memanggil delegasi menggunakan
greet()
, yang kemudian memanggilSayHello
.
Multicasting Delegasi
Sekarang, mari kita lihat bagaimana delegasi menjadi sangat menarik. Mereka dapat menahan referensi ke beberapa method! Ini disebut multicasting. Mari kita lihatnya dalam aksi:
public static void SayHello() { Console.WriteLine("Hello"); }
public static void SayGoodbye() { Console.WriteLine("Goodbye"); }
SimpleDelegate greetings = SayHello;
greetings += SayGoodbye;
greetings(); // Ini akan memanggil baik SayHello dan SayGoodbye
Output:
Hello
Goodbye
Apakah itu menarik? Kita telah menambahkan dua method ke delegasi kita, dan ketika kita memanggilnya, kedua method tersebut dipanggil dalam urutan mereka ditambahkan.
Menggunakan Delegasi
Delegasi sangat berguna dalam banyak konteks. Salah satu penggunaan umum adalah dalam pengaturan acara. Mari kita lihat contoh sederhana:
public delegate void TemperatureChangedHandler(float newTemperature);
class Thermostat
{
private float _temperature;
public event TemperatureChangedHandler TemperatureChanged;
public float Temperature
{
get { return _temperature; }
set
{
if (_temperature != value)
{
_temperature = value;
OnTemperatureChanged();
}
}
}
protected virtual void OnTemperatureChanged()
{
if (TemperatureChanged != null)
{
TemperatureChanged(_temperature);
}
}
}
class Program
{
static void Main()
{
Thermostat thermostat = new Thermostat();
thermostat.TemperatureChanged += HandleTemperatureChange;
thermostat.Temperature = 25.5f;
}
static void HandleTemperatureChange(float newTemperature)
{
Console.WriteLine($"Temperature changed to {newTemperature}°C");
}
}
Dalam contoh ini, kita telah membuat kelas Thermostat
yang menggunakan delegasi untuk memberitahu saat suhu berubah. Method Main
berlangganan ke acara ini, dan saat suhu diatur, ia memicu method HandleTemperatureChange
.
Method Delegasi
Ini adalah tabel dari beberapa method yang berkaitan dengan delegasi:
Method | Description |
---|---|
Invoke | Memanggil method yang dipegang oleh delegasi |
BeginInvoke | Memulai panggilan asinkron delegasi |
EndInvoke | Mengakhiri panggilan asinkron delegasi |
GetInvocationList | Mengembalikan array delegasi yang mewakili daftar panggilan |
Kesimpulan
Selamat! Anda baru saja mengambil langkah pertama ke dunia delegasi C#. Kita telah menyoroti menyatakan delegasi, menginstansiasinya, multicasting, dan bahkan melihat contoh praktis dalam pengaturan acara.
Ingat, delegasi mungkin tampak abstrak pada awalnya, tetapi mereka adalah alat yang sangat kuat dalam C#. Mereka memungkinkan desain yang fleksibel dan lepas terikat, khususnya dalam programming yang didorong oleh acara.
Sebagai Anda terus melanjutkan perjalanan C# Anda, Anda akan menemukan banyak penggunaan untuk delegasi. Mereka seperti pisau Switzerland di dalam kotak alat Anda - multifungsi dan selalu membantu saat Anda membutuhkannya.
Terus latihan, tetap kurios, dan sebelum Anda tahu, Anda akan menyerahkan tugas ke kode Anda seperti seorang pro! Selamat coding!
Credits: Image by storyset