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); } }