01/10/2018, 14:01

Đoạn code này sẽ hoạt động như thế nào

mình có hai class như sau

using System;

namespace ConsoleApp1
{
    public class Cong
    {
        public event EventHandler xuLyPhepCong;

        public int Sum(int a, int b)
        {
            if(xuLyPhepCong!=null)
                xuLyPhepCong(this,EventArgs.Empty);
            return a + b;
        }
    }
}

và class thứ hai

 class Program
    {


        static void Main(string[] args)
        {
             Cong c=new Cong();
             c.xuLyPhepCong += C_xuLyPhepCong;
             c.Sum(9, 10);
            Console.ReadKey();
        }

        private static void C_xuLyPhepCong(object sender, EventArgs e)
        {
            Console.WriteLine("ban vua thuc hien mot phep cong");
            
        }
    }

vậy tại sao khi mình gán sự kiện cho event thì khi gọi hàm cộng nó lại tự động thực hiện cái hàm C_xuLyPhepCong đó và cơ chế hoạt động ở đây là gì .Xin chân thành cảm ơn

Tao Không Ngu. viết 16:05 ngày 01/10/2018

Hi Đỗ Nhiên.
Cái đó khá giống con trỏ hàm. Đại khái nó sẽ gọi hàm đó.

Đỗ Nhiên viết 16:16 ngày 01/10/2018

mình thì mình cũng biết là như thế nhưng làm sao để giải thích cụ thể hơn đây

Quân viết 16:09 ngày 01/10/2018

xin hỏi chủ thread đã học được những phần kiến thức nào rồi, có thể kể sơ cho các mem có cái nhìn cụ thể về kiến thức bạn có để có thể đưa ra câu trả lời dễ hiểu đối với bạn nhất.

Đỗ Nhiên viết 16:09 ngày 01/10/2018

delegate và event anh ạ

Đoàn Trọng Hiếu viết 16:17 ngày 01/10/2018

xuLyPhepCong(this,EventArgs.Empty);

Cơ chế hoạt động ở đây là bạn gọi hàm thì nó chạy thôi =))

Bài liên quan
0