Temsilci Delegate Kavramına Giriş PDF Yazdır e-Posta
Administrator tarafından yazıldı   
Pazartesi, 12 Temmuz 2010 10:57

Temsilci -delegate- program içerisinde bir veya daha fazla metodu gösteren referans türünden bir nesnedir. 

Bir temsilci sadece bir tek metodu işaret edebileceği gibi, birden fazla metod için tanımlanmış ve oluşturulmuş temsilcileride kullanabiliriz. Diğer yandan, tek bir temsilcide birden fazla temsilciyi toplayarak bu temsilcilerin işaret ettiği, tüm metodları tek bir seferde çalıştıra bilirizde. Temsilciler gerçek anlamda iki amaçla kullanılırlar. Bunlardan birincisi olaylardır(events). Diğeri ise bir metodun çalışma zamanında, hangi metodların çalıştırılacağına karar vermesi gerektiği durumlarda kullanırız.

 

örnek kod

 

Snippete>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace delegateveolay
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]

        public static void topla(int x,int y)
        {
            MessageBox.Show("toplama sonucu"+(x+y).ToString()); 

        }
        public static void carp(int x, int y)
        {
            MessageBox.Show("carpma sonucu"+(x*y).ToString()); 

        }
        public static void cikar(int x, int y)
        {
            MessageBox.Show("çıkartma sonucu"+(x - y).ToString());

        }
        delegate void temsilci(int x, int y);

        static void Main()
        {
            //int sonuc = 0; 
            //int sayi1 = 100;
            //int sayi2 = 123;
            //temsilci temsilet = null;


            //temsilet += new temsilci(topla);
            //temsilet += new temsilci(carp);
            //temsilet += new temsilci(cikar);
            //temsilet(25, 65);

            //MessageBox.Show(sonuc.ToString());




            temsilci temsilcim1 = new temsilci(topla);
            temsilci temsilcim2 = new temsilci(carp);
            temsilci temsilcim3 = new temsilci(cikar);
            temsilci[] temsilci_dizi = { temsilcim1, temsilcim2, temsilcim3 };


            temsilci temsilci_hepsi = (temsilci)System.Delegate.Combine(temsilci_dizi);

            temsilci_hepsi(23, 21);
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}
 

 



 

Yorumlar (0)Add Comment

Yorum yaz
daha küçük | daha büyük

busy