Delagate Archives - Cao Đẳng FPT M?ng c c??c bng ? xét tuyển //westview-heights.com/tag/delagate Cao Đẳng FPT M?ng c c??c bng ? tuyển sinh theo hình thức xét tuyển h?sơ. Tiêu chí đào tạo: Thực học ?Thực nghiệp! Tue, 13 Jun 2023 04:20:01 +0000 vi hourly 1 //wordpress.org/?v=6.4.1 //westview-heights.com/wp-content/uploads/cropped-logo-fpt-32x32.png Delagate Archives - Cao Đẳng FPT M?ng c c??c bng ? xét tuyển //westview-heights.com/tag/delagate 32 32 Delagate Archives - Cao Đẳng FPT M?ng c c??c bng ? xét tuyển //westview-heights.com/tin-tuc-poly/ha-noi-tin-sinh-vien/delagate-la-gi-su-dung-delagate-trong-c-nhu-the-nao.html //westview-heights.com/tin-tuc-poly/ha-noi-tin-sinh-vien/delagate-la-gi-su-dung-delagate-trong-c-nhu-the-nao.html#respond Fri, 09 Jun 2023 07:37:02 +0000 //westview-heights.com/?p=235939 Delagate là gì? S?dụng delagate trong C# như th?nào? Đ?tr?lời những câu hỏi này, hãy theo dõi bài viết dưới đây nhé! Delegate là một kiểu d?liệu đặc biệt trong C# được s?dụng đ?...

The post Delagate là gì? S?dụng delagate trong C# như th?nào? appeared first on Cao Đẳng FPT M?ng c c??c bng ? xét tuyển.

]]>
Delagate là gì? S?dụng delagate trong C# như th?nào? Đ?tr?lời những câu hỏi này, hãy theo dõi bài viết dưới đây nhé!

Delegate là một kiểu d?liệu đặc biệt trong C# được s?dụng đ?khai báo tham chiếu tới các hàm hoặc phương thức (có th?hiểu là con tr?tr?tới hàm). Khi gán một hàm hoặc phương thức cho delegate thì delegate s?tr?tham chiếu tới hàm, phương thức đó. Sau đó, thay vì ta gọi hàm trực tiếp, ta có th?thông qua delegate đ?gọi mà không cần biết rõ tên hàm đó. Delegate giúp cho việc gọi hàm tr?nên linh hoạt hơn.

Ứng dụng Delegate trong C#

Sau đây là một s?ví d?v?s?dụng Delegate trong C#:

  1. Khai báo Delagate:

// Khai báo delegate   

   delegate int CalculatorDelegate(int num1, int num2);

   internal class Program

   {

        static void Main(string[] args)

        {

            // Khởi tạo delegate

            CalculatorDelegate calDele = new CalculatorDelegate(MaxNumber);

            // Gọi phương thức thông qua delegate

            int result = calDele (10, 20);

            // In ra giá tr?lớn nhất của hai s?/span>

            Console.WriteLine(“Max number: “ + result);

        }

        private static int MaxNumber(int num1, int num2)

        {

            return (num1 > num2) ? num1 : num2;

        }

}

?ví d?trên thay vì gọi trực tiếp hàm MaxNumber đ?tìm s?lớn nhất trong 2 s? ta gọi tới biến delegate calDele. Ví d?trên s?ra kết qu? Max number: 20

2. S?dụng delegate gọi tới các hàm khác nhau

// Khai báo delegate

    delegate int Calculator(int a, int b);

    internal class Program

    {

        static void Main(string[] args)

        {

            // Tạo instance của delegate, truyền phương thức Add vào delegate

            Calculator calculator = new Calculator(Add);

            // S?dụng delegate đ?tính tổng của 2 s?/span>

            int result = calculator(10, 5);

            Console.WriteLine(“10 + 5 = “ + result);

            // Truyền phương thức Subtract vào delegate

            calculator = new Calculator(Subtract);

            // S?dụng delegate đ?tính hiệu của 2 s?/span>

            result = calculator(10, 5);

            Console.WriteLine(“10 – 5 = “ + result);

            Console.ReadKey();

        }

        private static int Subtract(int a, int b)

        {

            return a – b;

        }

        private static int Add(int a, int b)

        {

            return a + b;

        }

    }

?ví d?trên, ta s?dụng delegate calculator đ?gọi tới phương thức Add nếu gán calculator = new Calculator(Add); gọi tới phương thức Subtract nếu ta gán calculator = new Calculator(Subtract);.

Qua việc s?dụng cùng 1 delegate đ?gọi tới các hàm khác nhau ta thấy việc gọi hàm rất linh hoạt và d?dàng.

Ví d?trên s?ra kết qu?

10 + 5 = 15

10 – 5 = 5

3. S?dụng delegate đ?tạo ra một callback

// Khai báo delegate

delegate void Callback(string message);

     internal class Program

     {

        static void Main(string[] args)

        {

            CallMethodWithCallback(“Hello, world!”, DisplayMessage);

        }

        private static void DisplayMessage(string message)

        {

            Console.WriteLine(“Callback called with message: “ + message);

        }

        private static void CallMethodWithCallback(string message, Callback callback)

        {

            Console.WriteLine(“Method called with message: “ + message);

            callback(message);

        }

}

?ví d?trên ta thấy ta s?khai báo một callback với delegate delegate void Callback(string message); Khi ta gọi function CallMethodWithCallback ta có th?truyền function vào như một tham s? CallMethodWithCallback(“Hello, world!”, DisplayMessage);

Ví d?trên s?ra kết qu?

Method called with message: Hello, world!

Callback called with message: Hello, world!

4. S?dụng delegate trong Lambda Expression

    // Khai báo delegate

    delegate int Operation(int a, int b);

    internal class Program

    {

        static void Main(string[] args)

        {

            Console.OutputEncoding = Encoding.UTF8;

            // S?dụng delegate trong lambda expression

            Operation sum = (a, b) => a + b;

            Operation product = (a, b) => a * b;

            int x = 5, y = 3;

// Kết qu? Tổng của 5 và 3 là 8

            Console.WriteLine($”Tổng của {x}{y}{sum(x, y)}); 

// Kết qu? Tích của 5 và 3 là 15

            Console.WriteLine($”Tích của {x}{y}{product(x, y)}); 

        }

    }

    internal class Program

    {

        static void Main(string[] args)

        {

            Func<int, int, int> add = Sum;

            int a = 10;

            int b = 20;

            int result = add(a, b);

            Console.WriteLine(“{0} + {1} = {2}”, a, b, result);

        }

        private static int Sum(int arg1, int arg2)

        {

            return arg1 + arg2;

        }

 }

Func<int, int, int> là một delegate có kiểu int với 2 tham s?truyền vào kiểu int.

Tóm lại, còn rất nhiều cách s?dụng delegate trong C#. Đ?tìm hiểu rõ hơn v?kiến thức, hãy cùng đón ch?nhiều bài viết trong thời gian tới nhé! 

B?môn Công ngh?thông tin
Trường Cao đẳng FPT M?ng c c??c bng ? cơ s?Hà Nội

The post Delagate là gì? S?dụng delagate trong C# như th?nào? appeared first on Cao Đẳng FPT M?ng c c??c bng ? xét tuyển.

]]>
//westview-heights.com/tin-tuc-poly/ha-noi-tin-sinh-vien/delagate-la-gi-su-dung-delagate-trong-c-nhu-the-nao.html/feed 0