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ı.
        }
    }
}


Yazılıma olan tutkusu için Trakya Üniversitesi - Bilgisayar Teknolojisi ve Bilişim Sistemleri öğrencisi, bölüm temsilcisi ve Keşan Yusuf Çapraz Uygulamalı Bilimler Yüksekokulu okul temsilcisi olarak öğrenimini 2016'da tamamladı. Junior Java Developer olarak aktif iş hayatına devam etmektedir.

Yazıyı Paylaş

Related Articles

Yorum Yaz

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