![Phân tích tư tưởng của nhân dân qua đoạn thơ: Những người vợ nhớ chồng… Những cuộc đời đã hóa sông núi ta trong Đất nước của Nguyễn Khoa Điềm](https://thuvienso.net/upload/document/136415/phan-tich-tu-tuong-cua-nhan-dan-qua-doan-tho-039-039-nhung-nguoi-vo-nho-chong-nhung-cuoc-doi-da-hoa-song-nui-ta-039-039-trong-dat-nuoc-cua-nguyen-khoa-136415.jpg)
Các Chủ Đề Tiến Bộ Trong C# part
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Các Chủ Đề Tiến Bộ Trong C# part Events ( Các sự kiện)Khi một ứng dụng chạy trên nền window nhận các thông báo khi môt việc gì đó xảy ra tagọi đó là event . ví dụ khi ta nhấn nút chuột thì cửa sổ ứng dụng mà ta nhấn sẽ đượcthông báo event này .Trong C# , các event thực sự là 1 dạng đặc biệt của delegateTuy nhiên ta không cần quan tâm các delegate bên dưới làm gì . ta sẽ tiếp cận event trênquan điểm phần mềm client ( client software). ta sẽ tập trung vào phần mã cần viết đểnhận các thông báo của event ,không cần quan tâm bên dưới làm gì .các event trong C# hơi giống với các khái niệm của VB mặc dù cú pháp và các thực thibên dưới thì không giống.Consumers view of event ( Cách nhìn của consumer về các event)Consumer ở đây là các ứng dụng mà muốn được thông báo khi điều gì đó xảy ra.cũng cóthể là các phần mềm khác( thường là hệ điều hành window hay .NET Framework ). taxem các phần mềm khác này là bộ phát sinh event ( event generator)Ở nơi nào đó trong consumer sẽ có 1 phương thức mà sẽ được gọi khi 1 MouseClick xaỷra.phương thức này đưọc gọi là event handler ( bộ xử lí event) cho event và 1 tên hay hơncho nó trong trường hợp này là OnClick() .để gửi đến bộ phát sinh event thông tin này,consumer sẽ phải đặt 1 tham chiếu đến OnClick() vào bên trong 1 delegate. mỗi lần bộphát sinh event có thông tin này ,khi thăm dò thấy chuột được nhấn, nó dùng delegate nàyđể gọi phương thức Onclick() của Consumer.Tất cả các bộ xử lí event phải trông giống như sau:void OnClick(object sender, EventArgs e) // e cũng có thể được dẫn xuất từ EventArgs{// mã xửlí event}Bộ xử lí event chỉ có thể trả về void.tất cả những gì bộ phát sinh event muốn làm là gọi 1phương thức. không cần biết consumer làm gì để đáp ứng.các bộ xử lí phải lấy 2 thôngsố. thông số đầu là 1 tham chiếu đến đối tượng sinh ra event. thông số thứ 2 phải là 1tham chiếu đến lớp cơ sở .NET , System.EvetnArgs ,hoặc là 1 lớp dẫn xuất từ nó.1 lớpdẫn xuất có thể chứa thông tin thêm về event như vị trí chuột ,phím nào được nhấn trênbàn phím.Để báo cho bộ phát sinh event biết ta quan tâm đến event. ta cần bộ phát sinh event tạo 1vài mục mà có thể nhận các yêu cầu cho thông báo. mục này sẽ là thành viên public củalớp .NET mà đại diện cho bộ phát sinh event,và là thành viên của kiểu event . thành viênnày là 1 dạng đặc biệt của multicast delegate.ta giả sử rằng consumer có 1 tham chiếu đếnbộ phát sinh event, qua trung gian là 1 biến tham chiếu gọi là Generator, và đó là thànhviên mà đại diện cho event được gọi là MouseClick. trong lớp consumer ,ta viết :EventGenerator Generator = GetAReferenceToTheEventGeneratorSomehow();Ta giả sử rằng EventGenerator đại diện cho lớp bộ phát sinh eventconsumer có thể thông báo với bộ phát sinh event rằng nó muốn nhận thông báo về việcnhấn chuột bằng dòng mã sau :Generator là 1 tham chiếu đến bộ phát sinh eventGenerator.MouseClick += OnClick();Khi bộ phát sinh event không quan tâm đến event này nữa ta có thể thông báo cho bộphát sinh event như sau :Generator.MouseClick -= OnClick();Consumer của ta có thể yêu cầu các thông báo của nhiều event mà nó muốn, thậm chí làyêu cầu các thông báo từ các nguồn khác.vì vậy mà thông số đầu tiên được truyền đến bộxử lí event là tham chiếu sender .ví dụ như trong một ứng dụng win form ta có nhiều nútnhấn , tất cả các nút đều có thể thông báo khi nó bị nhấn , bằng cách kiểm tra tham chiếusender ta có thể biết được nút nào được nhấn. ngoài ra các consumer khác nhau có thểyêu cầu được thông báo các event giống nhau.đơn giản chỉ việc cộng bộ xử lí event củanó vào các event bởi vì theo cách các multicast delegate làm việc , thì khi event được bắt,tất cả các bộ xử lí event sẽ được kích.Ví dụ về các Event : Console NotificationsTa sẽ xem xét ví dụ UserInputNotify.trong ví dụ này ta xét lại công ty điện thọaiMortimer Phones .ta sẽ viết 1 đoạn chương trình console nhỏ trình bày 1 thông điệp đến người dùng. trongví dụ người dùng sẽ chọn lựa giữa việc xem 1 thông điệp riêng từ Mortimer hay 1 quảngcáo chung. chương trình sẽ tiếp tục hỏi người dùng thông điệp muốn thấy cho đến khinguời dùng gõ X và nhấn Enter để thoát chương trình. tuy nhiên ta sẽ sắp xếp lại cấu trúcchương trình để dùng các event.Có 2 đối tượng cần quan tâm trong mã của ta :UserInputMonitor -đây là đối tượng mà tiếp xúc với người dùng . nó chịu trách nhiệm hỏinguời dùng thông điệp họ muốn thấy.MessageDisplayer - đây là đối tượng mà chịu trách nhiệm cho việc trình bày thông điệptương ứng.Bởi vì phần trình bày thông điệp không liên quan đến việc người dùng nhập , nên nókhông biết khi nào sẽ trình bày thông điệp hay thông điệp nào sẽ được trình bày - do đónó cần nhờ đến UserInputMonitor . UserInputMonitor sẽ làm điều này bằng cách đưa ra 1event. MessageDisplayer sẽ thông báo UserInputMonitor mà nó muốn được bảo khingười dùng yêu cầu trình bày thông điệp .sau đó khi người dùng tạo ra một yêu cầu,UserInputMonitor sẽ đưa ra 1 event tương ứng, ...
Tìm kiếm theo từ khóa liên quan:
máy tính mạng máy tính internet C# ngôn ngữ C# ngôn ngữ ngôn ngữ lập trình lập trình phần mềm file ứng dụngTài liệu có liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 308 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 302 0 0 -
Giáo án Tin học lớp 9 (Trọn bộ cả năm)
149 trang 293 0 0 -
Giáo trình Hệ thống mạng máy tính CCNA (Tập 4): Phần 2
102 trang 291 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 289 0 0 -
Ngân hàng câu hỏi trắc nghiệm môn mạng máy tính
99 trang 278 1 0 -
Bài giảng: Lịch sử phát triển hệ thống mạng
118 trang 276 0 0 -
47 trang 250 4 0
-
Đề cương chi tiết học phần Thiết kế và cài đặt mạng
3 trang 246 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 244 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 243 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 239 0 0 -
80 trang 238 0 0
-
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 227 1 0 -
Giáo trình môn học/mô đun: Mạng máy tính (Ngành/nghề: Quản trị mạng máy tính) - Phần 1
68 trang 225 0 0 -
6 trang 224 0 0
-
122 trang 222 0 0
-
Giáo trình Hệ thống mạng máy tính CCNA (Tập 4): Phần 1
122 trang 222 0 0 -
Giáo trình căn bản về mạng máy tính -Lê Đình Danh 2
23 trang 214 0 0 -
Giáo trình môn học Mạng máy tính - Nghề: Quản trị mạng máy tính - Trình độ: Cao đẳng nghề (Phần 2)
39 trang 213 0 0