Daha önceden yazdığımız delege kodlarında, delegelere atadığımız metotların özel isimleri vardı. Anonim metotlar sayesinde artık delegelere atadığımız metotların özel isimi olmak zorunda değil. Sadece yazdığımız metodumuzun işlevini delegemizin içine { } parantezlerinin arasına yazmamız yeterli. Yani delegede işaret edilecek metodları aynı anda tanımlayabiliyoruz.
namespace AnonimMethod
{
class Program
{
delegate void temsilci(int a, int b);
static void Main(string[] args)
{
temsilci delege2 = delegate(int x, int y)
{
Console.WriteLine("carpim:",(x*y));
};
// burda delegeye özel bir method atamayıp sadece methodun yapacağı içeriği delgemizin içine attık.
// delegeyi anonim methodlarla multicast edebiliriz
// tabiki imzaya uygun bir şekilde yapmamız lazım.
delege2 += delegate(int c, int d)
{
Console.WriteLine("carpim:",(c*d)); //multicast
};
Delegate[] metodlar = delege2.GetInvocationList(); // biz isim vermesek de metodlar isimlendirilir.
foreach (var item in metodlar)
{
Console.WriteLine("metod ismi:{0}",item.Method.Name);
}
// iki tane anonim method tanımladıgımız için isimleri ekrana gelmiştir.
}
}
}
iyi çalışmalar….