Delegeler (AnonimMetot)

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….

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir