İş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.