Ok, ok saya tahu topik ini mungkin sudah kadaluarsa, karena delegate sendiri sebenarnya ada sejak .net 1.0 release dan mungkin itu sudah beberapa tahun silam, secara sekarang Microsoft sudah release .net 3.0 setelah sebelumnya meluncurkan versi 1.1 dan 2.0, tapi bagaimanapun saya rasa tetaplah perlu delegate saya angkat kembali jadi topik karena barusan ada seseorang yang ternyata sudah bekerja cukup lama dengan .net tapi belum tahu maksud dari keyword baru itu
Delegate adalah untuk mendelegasikan, delegate sendiri sebenarnya adalah dasar dasar event di .net, dengan delegate kita bisa membuat sebuah deklarasi terhadap sebuah referensi yang digunakan untuk mengencapsulate (membungkus) sebuah method yang masih anonymous implementasinya.
contoh penggunaan delegate misal:
using System;
//– ini adalah deklarasi delegate
delegate bool LogThis(String strTobeLogged);class DelegateTest
{
//membuat implementasi delegate sesuai dengan signature/kontrak yang ada
static bool DelegateToConsole(String strTobeLogged)
{
Console.WriteLine(String.Format(“Logged 1: {0}”, strTobeLogged));
return true;
}static void Main()
{
// delegasikan
LogThis logthisMtd_1 = DelegateToConsole;
LogThis logthisMtd_2 = delegate(String strTobeLogged)
{
Console.WriteLine(String.Format(“Logged 2: {0}”, strTobeLogged));
return true;
}// menjalankan variable terdelegasi
logThisMtd_1(“test delegate”);
logThisMtd_2(“test delegate”);
}
}
Nah sederhana bukan, dengan delegate, kita bisa membuat sebuah kontrak referensi terhadap sebuah method variable yang belum bisa diketahui implementasinya. Dan memumgkinkan kita untuk merubah implementasinya programtically atau memasangkan kode baru kedalamnya sepanjang kita tahu kontrak-nya.










Komentar Terakhir