Beispiel #1
0
        public delegate bool Diziİslemleri(string s);  // delegelerin sadece metod gövdeleri olur. bunların içerisine herhangi bir kod değeri yazılmaz.. bunlar sadece bizim için metodların temsilcisidir. amcak hiçbir göreve dahil değildirler...bunları eventlerla görcez

        // eventler : buton,textbox bunların üzerine tıklama yazılma veya rengini değiştirme gibi bazı olaylrı vardır ve bunlara event denir. eventlarda bizim için delegate yardımıyla ifade edilebilmektedirler
        public static string[] IslemMetodu(string[] dizi, Diziİslemleri fonksiyon)
        {
            ArrayList arr = new ArrayList();

            foreach (string item in dizi)
            {
                if (fonksiyon(item))
                {
                    arr.Add(item);
                }
            }

            return((string[])arr.ToArray(typeof(string)));  // type of tipi verir. git bu tipte bir veri dönüşümü yapar artık elimde bir string dizi var
        } // YANİ GLOBAL olarak bir metod yazdık. bu metodu kullanan herkes otomatik olarak delegate ide kullanmış olucak
Beispiel #2
0
        public delegate bool Diziİslemleri(string s); // şimdide bunun metodunu yazalım

        public static string[] IslemMetot(string[] dizi, Diziİslemleri fonksiyon)
        {
            ArrayList arr = new ArrayList();

            foreach (string item in dizi)
            {
                if (fonksiyon(item))
                {
                    arr.Add(item);
                }
            }

            return((string[])arr.ToArray(typeof(string))); // ** cast işlemi yapıyoruz. çünk benim elimde ArrayList var ve bana string dizisi lazım.typepf ile bunun string olarak her değerini gör ve bu gördüğün değerleri bir diziyap ve daha sonra bunu cast et..
        }  // şimdi git bunu kullan ( main de)
        public static string[] İslemMetot(string[] dizi, Diziİslemleri fonk)
        {
            // bu metot kullanıldığı taktirde içerisine string bir dizi ve delegate istiyor.buradaki metodlar direk olarak Diziİslemleri adı altında bulunan buradaki delegate in üzerinden buradki fonksiyonun içerisine verilecek
            ArrayList arr = new ArrayList();

            foreach (string item in dizi)
            {
                if (fonk(item))    //dizilerin her bir satırı bizim için item olarak değerlendirlir.delegate bana bool değer dönüyor .<eğer buradaki değer treu ise...
                {
                    arr.Add(item); // senin gezmekte olduğun satır değerini gel buradaki dizinin içerisine aktar
                }
            }

            return((string[])arr.ToArray(typeof(string)));    // array listin içerisindeki verileri tamamen görebilmem için bunu bir diziye çevirmem gerekir..)//typeof tip bulma değeridir.
        }
Beispiel #4
0
        }  // şimdi git bunu kullan ( main de)

        static void Main(string[] args)
        {
            // Lambda => .. LINQ içerisinde sıklıkla kullanılır..bunun bazı delegeler yardımıyla nasıl kullanıcağına bakıcaz..
            string[] sehirler = { "Ankara", "Adıyaman", "Konya", "Kayseri", "Ağrı", "Kırşehir", "İzmir" };

            //işlem 1
            Diziİslemleri islem = delegate(string s) { return(s.StartsWith("İ")); };  //islem in içerisinde i ile başlayan şehirlerin değerleri var..

            string[] stri = IslemMetot(sehirler, islem);

            //işlem2
            string[] strA = IslemMetot(sehirler, delegate(string s) { return(s.StartsWith("A")); });


            //İŞLEM3
            string[] strR = IslemMetot(sehirler, (r => r.EndsWith("r")));



            Console.WriteLine("İ ile başlayanlar");
            foreach (string item in stri)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("A ile başlayanlar");
            foreach (string item in strA)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("R ile bitenler");
            foreach (string item in strR)
            {
                Console.WriteLine(item);
            }

            Console.ReadLine();
        }