C# Vize + Final Ders Notları 13 – Temsilci(Delegate)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//delegate metotların referansıdır.
//event
//bşir olay gerçekleştiğinde birden fazla fonksiyonu çağırmak isteyebilirsiniz.
//bir olayı birden fazla yere bildirmekte kullanılır.
//bir olay olduğunda delegate metodu çağrılır.
//delegate metodunu kendine ekleyen her metot otomatik olarak çağrılır.
//public delegate void foo();
//foo x = new foo(test);
//public void test() Console.WriteLine(“Tamam”);
namespace ConsoleApplication1
{
    /* DelegateTest adında bir sınıf oluşturun.
     * sınıfın yapıcı metodunda ok1,ok2 ve ok3 metotlarını delegate eklenmesini sağlayın.
     * kullanıcının girdiği herhangi bir sayıyı delegate ile işlemlerini gerçekleştirin.
     */
    //delegateleri bir metot listesi olarak düşünebilirsiniz. aynı özelliğe sahip metotların bir araya geldiği ve girilen parametrenin hepsini etkilemesini sğalayan yapılardır.
    class DelegateTest
    {
        public delegate void testDelegate(int a);//her yerden ulaşılabilir türde(public) geriye değer döndürmeyen(void) tam sayı tipinde tek bir parametre alan tüm metotlar için delegate tanımlanmıştır.
        public DelegateTest()//sınıfın yapıcı metodu
        {
            testDelegate td = new testDelegate(ok1);//delegate nesnesi oluşturuldu ve ilk değer olarak ok1 metodu eklendi
            td += new testDelegate(ok2);//ok2 eklendi
            td += new testDelegate(ok3);//ok3 eklendi
            string i = Console.ReadLine();//kullanıcıdan bir sayı istendi
            td(Convert.ToInt32(i));//girilen sayıyı td nin tek parametreli tüm metotlarında uygulandı ve işlemler gerçekleşti.
        }
        public void ok1(int i)
        {
            Console.WriteLine(i + ” değeri”);
        }
        public void ok2(int i)
        {
            Console.WriteLine(i + ” değeri”);
        }
        public void ok3(int i)
        {
            Console.WriteLine(i + ” değeri”);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            new DelegateTest();//DelegateTest sınıfına ulaşıldı.
        }
    }
}


Java Developer

Yazıyı Paylaş

Related Articles

Yorum Yaz

© 2020 Onur Arslan. Tüm Hakları Saklıdır. · RSS Yazıları · RSS Yorumları