Exemple #1
0
        public void de_mo()
        {
            // khởi tạo đối tượng mang tính chất của delegate

            kie_du_lieu_nha bien = new kie_du_lieu_nha(ham_binh_thuong);

            // như kiểu cái biến này trỏ tới cái hàm kia
            // tăng số lượng của hàm
            bien += new kie_du_lieu_nha(them_mot_ham);      // có thể làm như thế này luân
                                                            // người ta gọi là mulltiDelegate
                                                            // bien(); // muốn sử dụng thì là như này như ta tạo một cái hàm tạo vậy

            // có cả kiểu mày cũng là mulltiplay

            kie_du_lieu_nha bien1 = new kie_du_lieu_nha(ham_binh_thuong);
            kie_du_lieu_nha bien2 = new kie_du_lieu_nha(them_mot_ham);
            kie_du_lieu_nha bien3 = bien1 + bien2;       // như kiểu cộng hàm
                                                         // gọi từng thằng nha không phải gọi cùng lúc đâu
                                                         // nó gióng như queue
                                                         // bien3(); // chỉ cần gọi biến 3


            // chuyền tham số parmenter
            // paramenter của delegate phải trùng với số pramenter của hàm chuyển vào,hàm chuyền vào phải có đủ số paramenter của delegate mới gọi được
            kieu ten_bien = new kieu(ref ham_sum) + new kieu(ref ham_sum);               // cộng hàm  // hàm sum có đủ parmenter thì có thể cho vào
            //  int a = 3, b = 5;
            //  ten_bien(ref a, ref b);  // nhớp cách dùng ref nhe nó cũng chỉ là tham chiếu thôi

            // có cả kiểu  này luân nha nhanh gọn nhẹ dùng chỉ một lần rồi vứt như phò

            //kieu2 luc = new kieu2(( ref string a, ref  string b) => { Console.WriteLine(a + b); }) + new kieu2(( ref string a,  ref string b) => { Console.WriteLine(Convert.ToInt32(a) * Convert.ToInt32(b)); }) + new kieu2((ref string a,  ref string b) => { a = Console.ReadLine(); b =Console.ReadLine(); });
            //string a;
            //string b;
            // luc( ref  a, ref  b);  // bắt buộc phải chuyền giá trị cho nó

            // giông kiểu void ten(ref string){Console.ReadLine()};
            kieu3 luc1 = new kieu3((ref string a) => { Console.ReadLine(); }) + new kieu3((ref string a) => { Console.WriteLine(a); });



            List <string> a = new List <string>()
            {
                "nguyen van luc"
            };

            a.ForEach((f) => Console.WriteLine(f));
        }
        static void Main(string [] args)
        {
            kieu bien = new kieu(sum) + new kieu(hieu);

            //    bien(2,4); //chuyền tham số
            kieu2  bien2 = new kieu2(nhap) + new kieu2(xuat);
            string a     = null;
            string b     = null;

            bien2(ref a, ref b);   // bắt buộc phải chuyền giá trị cho nó


            void nhap(ref string a, ref string b)
            {
                Console.WriteLine("moi ban nhap gia tri cho a:");
                a = Console.ReadLine();
                Console.WriteLine("moi ban nhap gia tri cho b:");
                b = Console.ReadLine();
            }

            void xuat(ref string a, ref string b)
            {
                Console.WriteLine(a);
                Console.WriteLine(b);
            }

            void sum(int a, int b)
            {
                Console.WriteLine(a + b);
            }

            void hieu(int a, int b)
            {
                Console.WriteLine(a - b);
            }
        }