By GokiSoft.com| 14:51 29/05/2020|
C Sharp

[Share Code] Hướng dẫn tìm hiểu delegate + event trong C# - Lập Trình C3 - Lập Trình C Sharp

[Share Code] Hướng dẫn tìm hiểu delegate + event trong C# - Lập Trình C3 - Lập Trình C Sharp


#Program.cs


using System;
using System.Collections.Generic;

namespace Lession7
{
    public delegate float Calculator(float x, float y);
    public delegate void OnPressed();

    class Program
    {
        static event OnPressed onPressed;

        static void Main(string[] args)
        {
            float total = Add(3, 8);
            Console.WriteLine("Tong: {0}", total);

            //delegate
            Calculator cAdd = new Calculator(Add);
            float r = cAdd(6, 8);
            Console.WriteLine("(Calculator) Tong: {0}", r);

            //Su dung delegate quan ly mang cac function -> TH su dung 1 mang.
            List<Calculator> list = new List<Calculator>();
            list.Add(new Calculator(Add));
            list.Add(new Calculator(Sub));
            list.Add(new Calculator(Add));

            Calculator c1 = (x, y) => {
                return x * y;
            };

            Calculator c2 = (float x, float y) => {
                return x / y;
            };
            list.Add(c1);
            list.Add(c2);

            foreach(Calculator c in list) {
                float test = c(6, 8);
                Console.WriteLine("(Calculator) Tong: {0}", test);
            }

            //su dung 1 delegate Calculator => quan ly danh sach function
            Calculator calculator = new Calculator(Add);
            calculator += Sub;
            calculator += (x, y) =>
            {
                Console.WriteLine("Mul...");
                return x * y;
            };
            calculator += (x, y) =>
            {
                Console.WriteLine("De...");
                return x / y;
            };
            Console.WriteLine("Test ===> 2");
            float k = calculator(2, 6);
            Console.WriteLine("(Calculator) Tong k: {0}", k);

            //Events - Gia lap khi click vao button => show message => Hello
            onPressed += new OnPressed(ShowMessage);
            onPressed();
        }

        static void ShowMessage() {
            Console.WriteLine("Hello World!!!");
        }

        static float Add(float x, float y) {
            Console.WriteLine("Add...");
            return x + y;
        }

        static float Sub(float x, float y) {
            Console.WriteLine("Sub...");
            return x - y;
        }
    }
}


Phản hồi từ học viên

5

(Dựa trên đánh giá ngày hôm nay)