İşte bunun yazılım dilindeki karşılığını anlatmaya çalışalım.
Boş bir konsol uygulama projesi açalım.
Proje Oluşturma Adım 1
Proje Oluşturma Adım 2
Proje Oluşturma Adım 3
Proje Oluşturma Adım 4
İlk örneğimizi basit bir hesap makinesi üzerinden yapmaya çalışalım. Hesap makinesindeki işlemlerin her biri için ayrı metodlar yazalım. Sonrasında bu metodlara tek bir Delege ile işlem yaptırmaya çalışalım.
Örnek 1
using System;
namespace DelegeOrnek
{
    class Program
    {
        delegate void delHesaplamalar(int intSayi1, int intSayi2);
        static void Main(string[] args)
        {
            Console.WriteLine("#####################");
            Console.WriteLine("Hesaplama Başladı");
            delHesaplamalar hesap = new delHesaplamalar(fnTopla);
            hesap += fnCikar;
            hesap += fnBol;
            hesap += fnCarp;
            hesap += fnUslu;
            hesap.Invoke(5, 3);
            Console.WriteLine("Hesaplama Bitti");
            Console.WriteLine("#####################");
        }
        static void fnTopla(int intA, int intB)
        {
            Console.WriteLine("İki sayının toplam: " + (intA + intB));
        }
        static void fnCikar(int intA, int intB)
        {
            Console.WriteLine("İki sayının farkı: " + (intA - intB));
        }
        static void fnBol(int intA, int intB)
        {
            Console.WriteLine("İki sayının bölümü: " + (intA / intB));
        }
        static void fnCarp(int intA, int intB)
        {
            Console.WriteLine("İki sayının çarpımı: " + (intA * intB));
        }
        static void fnUslu(int intA, int intB)
        {
            Console.WriteLine($"{intA} ^ {intB} sonucu: " + (Math.Pow(intA, intB)));
        }
    }
}
Kodlarımız hazır. Çalışmamızın tam içeriğine ait Github adresini sizlerle paylaşalım. Github Linki
Kodlarımızı yazdık. Her bir metodla Toplama, Çıkarma, Çarpma, Bölme ve Üs Alma işlemlerini ayrı ayrı yaptık. O metodları ise atamış olduğumuz delege sayesinde çalıştırmış olduk. Örneğin sonucu aşağıdaki gibi.
