30/09/2018, 17:32
Cách sử dụng event và event có phải là thể hiện của delegate không?
Mình đang tìm hiểu về event. Bạn nào rảnh thì có thể giảng thêm cho mình được không tại mình thấy mình vẫn còn khá mơ hồ.
Bài liên quan
mình không hiểu câu hỏi của bạn? chi tiết hơn đi
Câu hỏi của bạn khá mơ hồ. Bạn nên search google để biết thêm thông tin chi tiết.
Cho mình hỏi về cách sử dụng event nhé và event có phải là thể hiện của delegate không.
Mình sẽ nói về event theo cách hiểu của mình dựa trên sự kiện của JavaScript (có lẽ bạn muốn ứng dụng nó vào C#). Event đơn giản là một sự kiện gì đó. Giống như trong hình, một cú click chuột là một event Khi bạn click, sẽ có một Event Loop lắng nghe sự kiện và sẽ gọi hàm xử lý tương ứng.
Ví dụ như bạn đi câu cá. Người câu là một Event Loop có nhiệm vụ là lắng nghe khi nào cần câu giật. Con cá là chủ thể kích hoạt sự kiện câu (1). Người câu cá nhận tín hiệu (2) và giựt dây câu (3). Kết quả là con cá đã được kéo lên khỏi mặt nước (4).
Cơ bản là khi bạn làm lập trình Windows Forms, Web (phía giao diện) thì bạn luôn làm việc với Event. Bạn muốn nhấn vào nút Login thì sẽ đăng nhập -> viết một cái hàm xử lý sự kiện đăng nhập. Ban muốn nhấn nút X thì cửa sổ đóng -> viết hàm xử lý sự kiện đóng cửa sổ. Bạn muốn mỗi lần có một ai đó viết một status thì sẽ báo Notifications trên New Feed -> viết một sự kiện lắng nghe dữ liệu từ Server, Một số ví dụ nêu ra nãy giờ là dùng Event ở những chỗ nào
Event có phải thể hiện của Delegate không thì mình không rành. Không dám bàn.
@vhnam
###Event
là sự lắng nghe những sự kiện sẽ xảy ra trong ứng dụng:
###Delegate
là sự kết nối 1 hoặc nhiều sự kiện(event) đến 1 hoặc nhiều hàm xử lý (handlers)
(sự kết nối ở đây cũng có thể hiểu là sự tham chiếu - reference)
trong JS thì delegation sử dụng rất nhiều, nó giúp việc gắn sự kiện và hàm xử lý lên 1 or nhiều đối tượng dễ dàng hơn.
1 ví dụ dễ nhất:
với cách 1 mình mình gắn mỗi li 1 event
[Note] Mình nghĩ bạn post câu hỏi này nên ghi rõ bạn hỏi cái gì trong ngôn ngữ nào hoặc dùng tag thì dễ cho người trả lời hơn. Cùng 1 khái niệm đôi khi có sự khác biệt giữ các ngôn ngữ.
Cảm ơn các bạn nha. Ví dụ rất cụ thể, mình cũng hiểu thêm rồi, chỉ tại óc mình bé quá.
Không cần thiết phải quote lại… kéo chuột mệt mỏi quá đi à