1. Anasayfa
  2. Nesne Tabanlı Programlama

Visual Studio C# Dersleri – C# Delegate (Temsilci) Kullanımı


0

Daha önceden C# Metotlardan bahsetmiştik metotlar işlerimizi kolaylaştıran küçük kod parçalarıydı.
Delegateler bir veya birden fazla metodu işaret eden onların adreslerini hafıza saklayan referans türünden nesnelerdir.
toplama, çıkartma , çarpma ve bölme işlemleri için programda metodlar tanımlanmış olsun bu meteotların hepsini aynı anda çalıştırmak için dört işlemi gösteren bir nesneye ihtiyacımız var işte bu nesnede bizim için delegate oluyor
Peki bu delegate (temsilci) tanımlama ve kullanma işlemi nasıl oluyor. Bunun için Bazı kurallarımız var en önemlisi delegate (temsilci) türü ne ise metot türleri de aynı olmalıdır. Peki delegate (temsilci) nasıl tanımlanıyor

erişimbelirleyici delegate geridönüştürü isim(parametreler);

şeklinde olmalıdır..
hemen bir örnek yapalım

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        public delegate void mesajyaz(string bilgi);

        static void mesaj(string yazilacak)
        {
            Console.WriteLine("Delegate çalıştırıldı ekrana" + yazilacak + "yazdi");
        }
        
        static void Main(string[] args)
        {
            mesajyaz yaz = new mesajyaz(mesaj);
            yaz("Bilişim Öğretmeni Delegate Örnek 1");
            Console.ReadKey();
        }
    }
}

Şimdide delegate (temsilci) tanımında dediğimiz birden fazla metodu işaret edebilir kısmında söylediğimizi örnekle açıklayalım

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        delegate void islem(double sayi1, double sayi2);
        static void toplam(double s1, double s2)
        {
            Console.WriteLine( s1 + s2);
        }
        static void fark(double s1, double s2)
        {
            Console.WriteLine( Math.Abs(s1 - s2));
        }
        static void carpim(double s1, double s2)
        {
            Console.WriteLine( s1 * s2);
        }
        static void bolum(double s1, double s2)
        {
            Console.WriteLine( s1 / s2);
        }
        static void Main(string[] args)
        {
            islem dortislem=new islem(toplam);
            dortislem += fark;
            dortislem += carpim;
            dortislem += bolum;
            dortislem(15, 3);
            Console.ReadKey();
        }
    }
}

Örneğimizde dortislem isimli delegate(temsilci) tanımlayarak bunun içine toplam,fark,carpim ve bolum metodlarını adresledik daha sonra tanımladığımız delegate üzerinden 15 ve 3 sayılarını metotların tümüne gönderdik ve sonuç olarak karşımıza
18
12
45
3 çıktı bir önceki örnekten farklı olarak tanımladığımız delegate üzerinde metotları atarken “+=” işareti kullandık..

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    ba_ar_l_
    Başarılı
  • 1
    gayet_yi
    Gayet İyi
  • 0
    te_ekk_rler
    Teşekkürler
  • 0
    anlamad_m
    Anlamadım
  • 2
    yetersiz
    Yetersiz
İlginizi Çekebilir
Subscribe
Bildir
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Yorum
Inline Feedbacks
View all comments