.Net delegate

23 12 2007

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.

Iklan

Aksi

Information

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google+

You are commenting using your Google+ account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s




%d blogger menyukai ini: