예제 #1
0
        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();
        }
예제 #2
0
        // 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();
        }
예제 #3
0
        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");
        }
예제 #4
0
        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();
        }
예제 #5
0
        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();
        }
예제 #6
0
        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();
        }
예제 #7
0
        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();
        }
예제 #8
0
        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();
        }
예제 #9
0
        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();
        }
예제 #10
0
        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);
        }
예제 #11
0
        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();
        }
예제 #12
0
        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();
        }
예제 #13
0
        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();
        }
예제 #14
0
        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
예제 #15
0
        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();
        }
예제 #16
0
        private static void DelegateTest()
        {
            CustomerManager   customerManager   = new CustomerManager();
            Matematik         matematik         = new Matematik();
            DelegateMessenger delegateMessenger = customerManager.SendMessage;

            matematik.TestDelegate(delegateMessenger);
        }
예제 #17
0
        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();
        }
예제 #18
0
        private static void ActionExamples()
        {
            CustomerManager customerManager = new CustomerManager();
            Matematik       matematik       = new Matematik();

            Action action = customerManager.ShowAlert;

            matematik.Calculater(customerManager.SendMessage);

            matematik.Calculater(action);
        }
예제 #19
0
        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.
        }
예제 #20
0
        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());
        }
예제 #21
0
        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();
        }
예제 #22
0
        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;
        }
예제 #23
0
        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));
        }
예제 #24
0
        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.
        }
예제 #25
0
        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();
        }
예제 #26
0
        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();
        }
예제 #27
0
        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());
        }
예제 #28
0
        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();
        }
예제 #29
0
        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));
        }
예제 #30
0
        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();
        }