public delegate int MyDelegate3(int sayi1, int sayi2); // <int> dönen iki <int> parametreli delege static void Main(string[] args) { Manager manager = new Manager(); //manager.SendMessage(); //manager.ShowAlert(); MyDelegate myDelegate = manager.SendMessage; // Belirtilen türde metot atmalıyız. myDelegate += manager.ShowAlert; // <+=> ile daha fazla metot ekleyip <-=> ile de çıkartabiliriz. //myDelegate(); // ile çalıştırabiliriz. Delegeler için bir metot gruplaması denilebilir. MyDelegate2 myDelegate2 = manager.SendMessage2; // Parametreli myDelegate2 += manager.ShowAlert2; myDelegate2("Hello"); // Fakat istediği parametreyi verdiğimiz zaman iki metodu da etkilemektedir. Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; myDelegate3 += matematik.Carp; // Son verilen referansı çalıştıracaktır. myDelegate3(2, 3); var sonuc = myDelegate3(2, 3); Console.WriteLine(sonuc); Console.ReadLine(); }
// Delege ile sizin metotlarınızın özelliklerini aynı olması şartıyla; // bir sınıfın metotuna yol oluşturmak için kullanabilirsin. // Ayrıca birden fazla metot ekleyerek tek çağrışta bunların hepsi sırasıyla çalıştırılabilir. static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); //customerManager.SendMessage(); //customerManager.ShowAlert(); MyDelegate myDelegate = customerManager.SendMessage; // MyDelegate özelliği yukarıda tanımlanmış üzere; bir örnek oluşturulur ve buna SendMessage metotu atılır. myDelegate += customerManager.ShowAlert; // Ayrıca ShowAlert metotu da += şeklinde eklenir. myDelegate -= customerManager.SendMessage; // İsteğe bağlı -= şeklinde çıkartılabilir. MyDelegate2 myDelegate2 = customerManager.SendMessage2; // bir örneğin içerisine string parametreli metot eklenir. myDelegate2 += customerManager.ShowAlert2; Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; // Dönüş tipine sahip metotların delegeye yüklenmesi halinde myDelegate3 += matematik.Carp; // eğer birden fazla yükleme varsa en son hangi metot verildiyse o çalışır. // yani topla'yı yapar ama göstermez** carp'ı gösterir. var sonuc = myDelegate3(2, 3); // Parametreleri gönderiyoruz ve dönüş değeri alabiliyorum. Console.WriteLine(sonuc); // son metot gösterilir > myDelegate3 += matematik.Carp; // myDelegate2("Hello"); //myDelegate(); Console.ReadLine(); }
static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); MyDelegate myDelegate = customerManager.SendMessage; myDelegate += customerManager.ShowAlert; myDelegate -= customerManager.SendMessage; MyDelegate2 myDelegate2 = customerManager.SendMessage2; myDelegate2 += customerManager.ShowAlert2; Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; myDelegate3 += matematik.Carp; var sonuc = myDelegate3(2, 3); Console.WriteLine(sonuc); myDelegate(); myDelegate2("Hi"); }
static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); //customerManager.SendMessage(); //customerManager.ShowAlert(); //delege kullanımı //özel bir elçi MyDelegate myDelegate = customerManager.SendMessage; myDelegate += customerManager.ShowAlert; //ikinci operasyonu bu şekilde ekliyoruz myDelegate -= customerManager.SendMessage; // istenilen operasyonu iptal eder MyDelegate2 myDelegate2 = customerManager.SendMessage2; myDelegate2 += customerManager.ShowAlert2; Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; myDelegate3 += matematik.Carp; var sonuc = myDelegate3(2, 3); //return tiplerde en son operasyonu alır yani çarpma sonucunu alır Console.WriteLine(sonuc); myDelegate2("Hi"); //iki operasyonda aynı mesajı gönderdi myDelegate(); //bunu yapıca consolda yazar Console.ReadLine(); }
static void Main(string[] args) { CustomerManager customermanager = new CustomerManager(); //customermanager.SendMessage(); //customermanager.ShowAlert(); MyDelegate myDelegate = customermanager.SendMessage; myDelegate += customermanager.ShowAlert; myDelegate(); Console.WriteLine("-----------------------"); myDelegate -= customermanager.SendMessage; myDelegate(); Console.WriteLine("-----------------------"); MyDelegate2 myDelegate2 = customermanager.SendMessage2; myDelegate2 += customermanager.ShowAlert2; myDelegate2("Hello"); //aynı delegate i iki operasyona da aynı olarak gönderiyoruz Console.WriteLine("-----------------------"); Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; myDelegate3 += matematik.Carp; var sonuc = myDelegate3(2, 3); Console.WriteLine(sonuc); Console.ReadLine(); }
static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); //customerManager.SendMessage(); //customerManager.ShowAlert(); MyDelegate myDelegate = customerManager.SendMessage; // Özel elçilik SendMessageyi taşıyacak myDelegate += customerManager.ShowAlert; // ikiside çalışıcak ikisini de yazdırıcak delegate. myDelegate -= customerManager.SendMessage; // SendMessage yi geri al yazdırma artık bunu dedik. çıkardık bunu be carefull yazıcak sadece. MyDelegate2 myDelegate2 = customerManager.SendMessage2; myDelegate2 += customerManager.ShowAlert2; Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; var sonuc = myDelegate3(2, 3); // return eden typelarda += yaparken en son verdiğimiz delegateyi döndürür ikisini de alt alta yazdırmaz öyle. Console.WriteLine(sonuc); myDelegate2("Hellooooo"); // 2 operasyon içinde helloooo yu gönderiyoruz.. myDelegate(); Console.ReadLine(); }
static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); //customerManager.SendMessages(); //customerManager.ShowAlert(); MyDelegate myDelegate = customerManager.SendMessages; myDelegate += customerManager.ShowAlert; myDelegate(); Console.WriteLine("------------------"); myDelegate -= customerManager.ShowAlert; myDelegate(); MyDelegate2 myDelegate2 = customerManager.Messages; myDelegate2 += customerManager.Alert; myDelegate2("Testing"); Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; myDelegate3 += matematik.Carp; // Return işlemlerinde son kullanılan method dikkate alınıyor... Console.WriteLine(myDelegate3(3, 6)); Console.ReadLine(); }
static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); //customerManager.SendMessage(); MyDelegate myDelegate = customerManager.SendMessage; myDelegate += customerManager.ShowAlert; //yapılacak işleri belli şartlara göre toplayabiliriz myDelegate = myDelegate - customerManager.SendMessage; MyDelegate2 myDelegate2 = customerManager.SendMessage; Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; myDelegate(); myDelegate2("naber"); var sonuc = myDelegate3(5, 2); Console.WriteLine(sonuc); Console.ReadLine(); }
static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); //customerManager.SendMessage(); //customerManager.ShowAlert(); MyDelegate myDelegate = customerManager.SendMessage; myDelegate += customerManager.ShowAlert; myDelegate -= customerManager.SendMessage; MyDelegate2 myDelegate2 = customerManager.SendMessage2; myDelegate2 += customerManager.ShowAlert2; Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; myDelegate3 += matematik.Carp; int sonuc = myDelegate3(2, 3); Console.WriteLine(sonuc); //myDelegate2("Hello");//Hello Hello //myDelegate();//Be Careful Console.ReadLine(); }
static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); //customerManager.SendMessage(); //customerManager.ShowAlert(); MyDelegate myDelegate = customerManager.SendMessage; myDelegate += customerManager.ShowAlert; myDelegate -= customerManager.SendMessage; myDelegate(); //yapılacak işleri sıraya koyup sonra çalıştırabiliriz. Console.WriteLine("--------------"); MyDelegate2 myDelegate2 = customerManager.SendMessage2; myDelegate2 += customerManager.ShowAlert2; myDelegate2("Hello"); //aynı parametreyi iki operasyon için de göndermemiz gerekiyor. Kısıt Console.WriteLine("--------------"); Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; myDelegate3 += matematik.Carp; var sonuc = myDelegate3(2, 3); //en son return edilen delege çalışır Console.WriteLine(sonuc); }
static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); //customerManager.SendMessage(); //customerManager.ShowAlert(); MyDelegate myDelegate = customerManager.SendMessage; myDelegate += customerManager.ShowAlert; myDelegate -= customerManager.SendMessage; MyDelegate1 myDelegate1 = customerManager.SendMessage1; myDelegate1 += customerManager.ShowAlert1; Matematik matematik = new Matematik(); MyDelegate2 myDelegate2 = matematik.Topla; myDelegate2 += matematik.Carp; var result = myDelegate2(2, 3); Console.WriteLine(result); myDelegate1("Hello"); myDelegate(); Console.ReadLine(); }
public delegate int MyDelegate3(int number1, int number2); // 2 int parametre isteyen ve int döndüren static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); //customerManager.SendMessage(); //customerManager.ShowAlert(); MyDelegate myDelegate = customerManager.SendMessage; myDelegate += customerManager.ShowAlert; // önce yapılacak işler toplanıyor. myDelegate -= customerManager.SendMessage; //yapılacak bir işi geride alabiliriz myDelegate(); // delegate çağırıldı. MyDelegate2 myDelegate2 = customerManager.SendMessage2; myDelegate2 += customerManager.ShowAlert2; myDelegate2("Hello"); // 2 Hello ekrana yazılır. Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; myDelegate3 += matematik.Carp; var sonuc = myDelegate3(2, 3); Console.WriteLine(sonuc); // integer türünde bir değer return edilecekse genellikle değişkene son atanan değer verilir. // yani çıktısı 3*2'den 6'dır. Console.ReadLine(); }
public delegate int MyDelegate3(int number1, int number2); //int döndürüyor ve parametre alıyor static void Main(string[] args) { //Delegeler günümüzde kullandığımız hale gelene kadar birçok versiyon çıkmıştır. Anlamı Elçi. dönüş değieri olmayan(void) methodlara ve parametre almayan methodlara delegelit yapıyor. CustomerManager customerManager = new CustomerManager(); Matematik matematik = new Matematik(); //customerManager.SendMessage(); //customerManager.ShowAlert(); MyDelegate myDelegate = customerManager.SendMessage; myDelegate += customerManager.ShowAlert; myDelegate -= customerManager.SendMessage; MyDelegate2 myDelegate2 = customerManager.SendMessage2; myDelegate2 += customerManager.ShowAlert2; MyDelegate3 myDelegate3 = matematik.Topla; myDelegate3 += matematik.Carp;//return type olan delegelerede en son verilen method çalıştırılır Console.WriteLine(myDelegate3(3, 5)); myDelegate2("Hello");//2 methodada aynı mesajı gönderiyoruz böyle olmak zorunda myDelegate(); Console.ReadLine(); }
static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); //customerManager.SendMessage(); //customerManager.ShowAlert(); MyDelegate myDelegate = customerManager.SendMessage; myDelegate += customerManager.ShowAlert; myDelegate -= customerManager.SendMessage; myDelegate(); MyDelegate2 myDelegate2 = customerManager.SendMessage2; myDelegate2 += customerManager.ShowAlert2; myDelegate2("Hello"); Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Hesapla; myDelegate3 += matematik.Hesapla2; int sonuc = myDelegate3(2, 3); Console.WriteLine(sonuc); Console.ReadLine(); }// en son verdiğiniz delege calışır return değer gönderirken
static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); MyDelegate myDelegate = customerManager.SendMessage; myDelegate += customerManager.ShowAlert; myDelegate -= customerManager.SendMessage; MyDelegate2 myDelegate2 = customerManager.SendMessage2; myDelegate2 += customerManager.ShowAlert2; Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; myDelegate3 += matematik.Carp; // tipi void olmadığı için en son verilen işlemi(çarpma) yaptı, toplama yapmadı. var sonuc = myDelegate3(2, 3); Console.WriteLine(sonuc); myDelegate2("Hello"); myDelegate(); Console.ReadLine(); }
private static void DelegateTest() { CustomerManager customerManager = new CustomerManager(); Matematik matematik = new Matematik(); DelegateMessenger delegateMessenger = customerManager.SendMessage; matematik.TestDelegate(delegateMessenger); }
static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); customerManager.SendMessage(); customerManager.ShowAlert(); // (5) ben bunları el ile çağpırdım MyDelegate myDelegate = customerManager.SendMessage; // (6) MyDelegate myDelegate , public delegate void MyDelegate(); bu formatta çalışan bir elçi. // (7) Bir delegeden birden fazla işi yapan elçi oluşturabilirim. // (8) Bu elçi, maydelegate; CustomerManagerin sendMEssagesine delege edilmiş durumda demek oluyor. // (9) Ama bu şekilde çalıştırdığımız zaman ekranda Hello yazısını görmeyeceğiz. Bunu yapabilmemiz için, bunu yap demedik. // (10) Delegeyi çağırmamız lazım myDelegate(); ile delegemizi çağırmış oluyoruz. myDelegate(); // (11) Peki şu şekilde yaptığımız da; myDelegate += customerManager.ShowAlert; // (12) Ben başka bir operasyonu da bu arkadaşa bu şekilde delege etmiş oluyoruz. // (13) += ile bu işlemi yapabiliriz. Arka arkaya iki operasyonu çağırabiliriz. // (14) Yapılacak işlemleri belli şartlara göre nce topluyoruz ve en nihayetinde o sırayı toplamış oluyoruz ve onu çağırmış oluyoruz. // (15) Mesela bir porlbem var ve şöyle demek istiyorum. // (16) Ona selamımı yollama direk uyarıyı yap!! gibi bir şey demek istiyorum myDelegate -= customerManager.SendMessage; // (17) bir işlemi geri almak istiyorum ben. // (18) -= kulandığımda da merhaba demeeyecek // (19) Msela bu işlemi, eğer şu olduysa şunu deme/yapma gibi kullanabiliriz. // MyDelegate2 myDelegate2 = customerManager.SendMessage; // (21) Ben bunu bu şekilde yazdığımda hata verecek // (22) string ifadeye uyan bir şey göndermemiz lazım çünkü string bir ifade istiyor. MyDelegate2 myDelegate2 = customerManager.SendMessage2; // (23) SendMessage2 yi kullandığım zaman hata vermeyecek çünkü string bir parametre yolluyoruz. myDelegate2 += customerManager.ShowAlert2; Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; myDelegate3 += matematik.Carp; var sonuc = myDelegate3(2, 3); Console.WriteLine(sonuc); // (28) Delegelerde, bir return type varsa en son return type olan delege neyse onu çalıştıracaktır. // (29) Biz buradaki kodlarda 2+3 ü yaptırdık buna da 2*3 ü eklemek istedik. En son return type ye 2*3ü yazdığı için ekranda 6 ifadesini gördük. myDelegate2("Hello, Send and Alert"); // (24) Burada da string bir ifadeyi parametre olarak yolluyoruz yalnız buradaki // (25) kısıtımız Hello ifadesini SendMessage2 ve ShowAlert2 için aynı anda yollamış oluyor myDelegate(); Console.ReadLine(); }
private static void ActionExamples() { CustomerManager customerManager = new CustomerManager(); Matematik matematik = new Matematik(); Action action = customerManager.ShowAlert; matematik.Calculater(customerManager.SendMessage); matematik.Calculater(action); }
private static void ActionDemo() { CustomerManager customerManager = new CustomerManager(); Matematik matematik = new Matematik(); //Oluşturulan metoda void geri dönüş tipinde herhangi bir parametre almayan bir metot gönderildi. matematik.Calculater(customerManager.SendMessage); //Oluşturulan actiona void geri dönüş tipinde herhangi bir parametre almayan bir metot atandı. Action action = customerManager.ShowAlert; matematik.Calculater(action);//Oluşturulan action Calculater a parametre olarak gönderildi. }
static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); //customerManager.SendMessage(); //customerManager.ShowAlert(); MyDelegate myDelegate = customerManager.SendMessage; //myDelegate(); myDelegate += customerManager.ShowAlert; //myDelegate(); myDelegate -= customerManager.SendMessage; myDelegate(); MyDelegate2 myDelegate2 = customerManager.SendMessage2; myDelegate2 += customerManager.ShowAlert2; myDelegate2("Hello"); Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; //return type olduğu için en son değer döndürülür myDelegate3 += matematik.Carp; var sonuc = myDelegate3(2, 3); Console.WriteLine(sonuc); Console.ReadLine(); Action action; Func <int, int, int> add = matematik.Topla; Func <int> getRandomNumber = delegate() { Random random = new Random(); return(random.Next(1, 100)); }; Console.WriteLine(getRandomNumber()); Func <int> getRandomNumber2 = () => new Random().Next(1, 100); Thread.Sleep(1000); Console.WriteLine(getRandomNumber()); }
static void Main(string[] args) { //11.gunodev3 CustomerManager customerManager = new CustomerManager(); //customerManager.SendMessage(); //customerManager.ShowAlert(); //MyDelegate myDelegate = customerManager.SendMessage; //myDelegate += customerManager.ShowAlert; //myDelegate -= customerManager.SendMessage; //myDelegate(); MyDelegate2 myDelegate2 = customerManager.SendMessage2; myDelegate2 += customerManager.ShowAlert2; myDelegate2("hello"); Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; myDelegate3 += matematik.Carp; Console.WriteLine(myDelegate3(2, 3)); Func <int, int, int> add = matematik.Topla; Console.WriteLine(add(4, 4)); Func <int> getRandomNumber = delegate() { Random random = new Random(); return(random.Next(1, 100)); }; Func <int> getRandomNumber2 = () => new Random().Next(1, 100); Console.WriteLine(getRandomNumber()); Console.WriteLine(getRandomNumber2()); Console.ReadLine(); }
private static void FuncDemo() { Matematik matematik = new Matematik(); Func <int, int, int> func = matematik.Carp; Console.WriteLine(func.Invoke(4, 5)); Func <int> randomNumber = delegate() { var random = new Random(); int randomNum = random.Next(1, 20); return(randomNum); }; Console.WriteLine(randomNumber.Invoke()); DelegateCalculate delegateCalculate = matematik.Bol; }
private static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); //customerManager.SendMessage(); //customerManager.ShowAlert(); MyDelegate myDelegate = customerManager.SendMessage; MyDelegate2 myDelegate2 = customerManager.SendMessage2; myDelegate2("naber"); myDelegate += customerManager.ShowAlert; myDelegate(); Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; Console.WriteLine(myDelegate3(5, 7)); }
private static void Intro() { CustomerManager customerManager = new CustomerManager(); //customerManager.SendMessage(); //customerManager.ShowAlert(); //Yukarıdaki formatta çalışan özel bir elçi. MyDelegate myDelegate = customerManager.SendMessage; //Bu elçi customerManager.SendMessage'ına delege edilmiş. //Burada görev verildi ama görevini yerine getir denilmedi. myDelegate += customerManager.ShowAlert; //2. bir görev daha ekledik delegeye. myDelegate -= customerManager.SendMessage; //SendMessage görevini çıkartada biliriz. myDelegate(); //Görevini yerine getirir. //Yemek yapma sürecinde işlemler benzerdir. Yağ ekler soğanı kavurursun vs. vs. //Ama bütün yemeklerin bu sürecinde + ve - ler vardır. //Yapılacak işlemleri belirli şartlara göre önce bir toplanır yapılacak sıra oluşturulmuş olur. //Sonra onu çağırma eyleminde buşunabiliriz. Bunu testlerde küçük method parçalarına bölüpde kullanılabilir. //MyDelegate2 myDelegate2 = customerManager.SendMessage(); //Bunu veremeyiz çünkü parametre almıyor. MyDelegate2 myDelegate2 = customerManager.SendMessage2; myDelegate2 += customerManager.ShowAlert2; myDelegate2("hello"); //Buradaki kısıt gelegeye eklediğimiz iki method için aynı text'i göndermiş oluyoruz. Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; myDelegate3 += matematik.Carp; var sonuc = myDelegate3(2, 3); Console.WriteLine(sonuc); //sonuc 6dır. Çünkü return type int olduğu için son methodu çalıştırır. }
static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); MyDelegate myDelegate = customerManager.SendMessage; myDelegate += customerManager.ShowAlert; myDelegate -= customerManager.SendMessage; MyDelegate2 myDelegate2 = customerManager.SendMessage2; myDelegate2 += customerManager.ShowAlert2; Matematik matematik = new Matematik(); MyDelegate3 myDelegate3 = matematik.Topla; myDelegate3 += matematik.Carpa; //var result=myDelegate3(2, 3); //Console.WriteLine(result); Console.WriteLine(myDelegate3(2, 3)); myDelegate2("HELLO!"); myDelegate(); Console.ReadKey(); }
static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); MyDelegate myDelegate = customerManager.SendMessage; myDelegate += customerManager.ShowAlert; myDelegate(); MyDelegateText myDelegateText = customerManager.SendMessageTxt; myDelegateText += customerManager.ShowAlertTxt; myDelegateText("Merhaba"); myDelegate -= customerManager.SendMessage; //Func Demo Matematik matematik = new Matematik(); Func <int, int, int> add = matematik.Add; Console.WriteLine(add(6, 1)); Func <int> getRandomNumber = delegate() { Random random = new Random(); return(random.Next(1, 100)); }; Console.WriteLine(getRandomNumber()); Func <int> getRandomNumber2 = () => new Random().Next(1, 1000); Console.WriteLine(getRandomNumber2()); Console.ReadLine(); }
static void Main(string[] args) { Matematik matematik = new Matematik(); CustomerManager customerManager = new CustomerManager(); //customerManager.SendMessage(); //customerManager.ShowAlert(); MyDelegate myDelegate = customerManager.SendMessage; MyDelegate2 myDelegate2 = customerManager.SendMessage2; MyDelegate3 myDelegate3 = matematik.Topla; myDelegate3 += matematik.Carp; //Delegate'lerde eğer bir return type varsa en sonuncuyu kabul edip döndürür. var sonuc = myDelegate3(2, 3); Console.WriteLine(sonuc); myDelegate2 += customerManager.ShowAlert2; myDelegate2("Hello"); //aynı değişkeni göndermemiz gerekiyor. myDelegate += customerManager.ShowAlert; myDelegate -= customerManager.SendMessage; myDelegate(); Func <int, int, int> add = matematik.Topla; Console.WriteLine(add(3, 5)); Func <int> getRandomNumber = delegate() { Random random = new Random(); return(random.Next(1, 100)); }; Func <int> getRandomNumber2 = () => new Random().Next(1, 100); Console.WriteLine(getRandomNumber()); Console.WriteLine(getRandomNumber2()); }
static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); MyDelegate myDelegate = customerManager.SendMessage; myDelegate += customerManager.ShowAlert; myDelegate(); Console.WriteLine("---------"); MyDelegate2 myDelegate2 = customerManager.ShowAlert2; myDelegate2("Selam"); Console.WriteLine("---------"); Matematik islem = new Matematik(); MyDelegate3 myDelegate3 = islem.Topla; myDelegate3 += islem.Carp; Console.WriteLine(myDelegate3(3, 2)); Console.ReadKey(); }
private static void DelegateDemo() { CustomerManager customerManager = new CustomerManager(); //CustomerManeger classından nesne oluşturuldu. DelegateMessenger delegateMessenger = customerManager.SendMessage; //Bu nesneye ait metotlar oluşturulan delegateye atandı. delegateMessenger += customerManager.ShowAlert; //delegate ye metot eklendi. delegateMessenger(); //delegate aktif hale getirildi. Matematik matematikIslem = new Matematik(); DelegateMath delegateMath = matematikIslem.Topla; delegateMath += matematikIslem.Cikarma; delegateMath(4, 3); DelegateCalculate delegateCalculate = matematikIslem.Bol; result = delegateCalculate(5, 3); Console.WriteLine(result); delegateCalculate += matematikIslem.Carp; Console.WriteLine(delegateCalculate(result, 3)); }
public delegate int MyDelegate3(int number1, int number2); //(112)İnt cinsinde parametreli delegate static void Main(string[] args) { CustomerManager customerManager = new CustomerManager(); //(112)Customer manager instance Matematik matematik = new Matematik(); //(112) Matematik sınıfı için instance yazıldı MyDelegate3 bu sınıfı kullanıyor. //customerManager.SendMessage(); //customerManager.ShowAllert(); MyDelegate myDelegate = customerManager.SendMessage;//(112)delege oluşturuldu ve send message yüklendi myDelegate += customerManager.ShowAllert; //(112)Delegeye show alert eklendi myDelegate -= customerManager.SendMessage; //(112)delegeden sendmessage çıkarıldı MyDelegate2 myDelegate2 = customerManager.SendMessage2; //(112)2. delege instance edildi ve send message yüklendi myDelegate2 += customerManager.ShowAllert2; //(112)2. delegeye showalert eklendi MyDelegate3 myDelegate3 = matematik.Topla; //(112)MyDelegate3 için instance.Matematik nesnesiyle Matematik sınıfından Topla metodunu çalıştırmak üzere atandı. myDelegate3 += matematik.Carp; //(112)myDelegate 3 e çarp metodu eklendi ancak burada yine parametre kısıtından dolayı son yazılan çalışacak. int sonuc = myDelegate3(2, 3); //(112) matematik.Topla parametreli olduğundan burada çağırılırken parametreleri gönderiliyor. Dönen değeri ekrana yazdırabilmek için sonuc değişkeni üretildi. Console.WriteLine(sonuc); //(112) myDelegate2("Hello2"); //(112)Burada delegede 2 metot olmasına rağmen gönderilebilecek tek string olduğundan, her iki metoda da parametre olarak aynoı string gönderilir ve ekrana 2 defa yazar bu kısıttır. myDelegate(); //(112)Delege çağırıldı Console.ReadLine(); }