Danh mục

Giáo trình truy cập các thành phần trong mảng đa chiều có kích thước khác nhau p9

Số trang: 40      Loại file: pdf      Dung lượng: 1.88 MB      Lượt xem: 14      Lượt tải: 0    
10.10.2023

Phí tải xuống: 13,000 VND Tải xuống file đầy đủ (40 trang) 0
Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Trong ví dụ trên, đối tượng ImageProcessor được tạo ra và những hiệu ứng được thêm vào. Nếu người dùng chọn làm mờ trước khi lọc ảnh, thì đơn giản là được đưa vào mảng ủy quyền theo thứ tự tương ứng.public static void Main() { Image theImage = new Image(); // do không có GUI để thực hiện chúng ta sẽ chọn lần // lượt các hành động và thực hiện ImageProcessor theProc = new ImageProcessor(theImage); ...
Nội dung trích xuất từ tài liệu:
Giáo trình truy cập các thành phần trong mảng đa chiều có kích thước khác nhau p9 Ngôn Ngữ Lập Trình C# public static void Main() { Image theImage = new Image(); // do không có GUI để thực hiện chúng ta sẽ chọn lần // lượt các hành động và thực hiện ImageProcessor theProc = new ImageProcessor(theImage); theProc.AddToEffects(theProc.BlurEffect); theProc.AddToEffects(theProc.FilterEffect); theProc.AddToEffects(theProc.RotateEffect); theProc.AddToEffects(theProc.SharpenEffect); theProc.ProcessImage(); } }}----------------------------------------------------------------------------- Kết quả:An image createdBlurring imageFiltering imageRotate imageSharpening image-----------------------------------------------------------------------------Trong ví dụ trên, đối tượng ImageProcessor được tạo ra và những hiệu ứng được thêm vào.Nếu người dùng chọn làm mờ trước khi lọc ảnh, thì đơn giản là được đưa vào mảng ủy quyềntheo thứ tự tương ứng. Tương tự như vậy, bất cứ hành động lựa chọn nào của người dùngmong muốn, ta đưa thêm nhiều ủy quyền vào trong tập hợp.Chúng ta có thể tưởng tượng việc hiển thị thứ tự hành động này trong một danh sách listboxvà cho phép người sử dụng sắp xếp lại phương thức, di chuyển chúng lên xuống trong danhsách. Khi các hành động này được sắp xếp lại thì chúng ta chỉ cần thay đổi thứ tự trong tậphợp. Ngoài ra ta cũng có thể đưa các hoạt động này vào trong cơ sở dữ liệu rồi sau đó đọcchúng lúc thực hiện.Ủ y quyền dễ dàng cung cấp động cho ta các phương thức được gọi theo một thứ tự xác địnhMulticasting Cơ chế multicasting cho phép gọi hai phương thức thực thi thông qua một ủy quyền đơn.Điều này trở nên quan trọng khi xử lý các sự kiện, sẽ được thảo luận trong phần cuối củachương. 321 Cơ Chế Ủy Quyền - Sự Kiện Ngôn Ngữ Lập Trình C#Mục đích chính là có một ủy quyền có thể gọi thực hiện nhiều hơn một phương thức. Điềunày hoàn toàn khác với việc có một tập hợp các ủy quyền, vì mỗi trong số chúng chỉ gọi đượcduy nhất một phương thức. Trong ví dụ trước, tập hợp được sử dụng để lưu giữ các ủy quyềnkhác nhau. Tập hợp này cũng có thể thêm một ủy quyền nhiều hơn một lần, và sử dụng tậphợp để sắp xếp lại các ủy quyền và điều khiển thứ tự hành động được gọi.Với Multicasting chúng ta có thể tạo một ủy quyền đơn và cho phép gọi nhiều phương thứcđược đóng. Ví dụ, khi một nút lệnh được nhấn chúng ta có thể muốn thực hiện nhiều hơn mộthàh động. Để làm được điều này chúng ta có thể đưa cho button một tập hợp các ủy quyền,nhưng để sáng rõ hơn và dễ dàng hơn là tạo một ủy quyền Multicast.Bất cứ ủy quyền nào trả về giá trị void là ủy quyền multicast, mặc dù vậy ta có thể đối xử vớinó như là ủy quyền bình thường cũng không sao. Hai ủy quyền Multicast có thể được kết hợpvới nhau bằng phép toán cộng (+). Kết quả là một ủy quyền Multicast mới và gọi đến tất cảcác phương thức thực thi nguyên thủy của cả hai bên. Ví dụ, giả sử Writer và Logger là ủyquyền trả về giá trị void, dòng lệnh theo sau sẽ kết hợp chúng lại với nhau và tạo ra một ủyquyền Multicast mới: myMulticastDelegate = Writer + Logger;Chúng ta cũng có thể thêm những ủy quyền vào trong ủy quyền Multicast bằng toán tử cộngbằng (+=). Phép toán này sẽ thêm ủy quyền ở phía bên phải của toán tử vào ủy quyềnMulticast ở bên trái. Ví dụ minh họa như sau, giả sử có Transmitter và myMulticastDelegatelà những ủy quyền, lệnh tiếp theo sau đây sẽ thực hiện việc thêm ủy quyền Transmitter vàotrong myMulticastDelegate: myMulticastDelegate += Transmitter;Để hiểu rõ ủy quyền Multicast được tạo ra và sử dụng, chúng ta sẽ từng bước tìm hiểu thôngqua ví dụ 11.3 bên dưới, trong ví dụ minh họa này chúng ta sẽ tạo ra một lớp có tên gọi làMyClassWithDelegate lớp này định nghĩa một delegate, delegate này lấy một tham số làchuỗi và không có giá trị trả về: void delegate void StringDelegate( string s);Sau đó chúng ta định một lớp gọi là MyImplementingClass lớp này có ba phương thức, tất cảcác phương thức này đều trả về giá trị void và nhận một chuỗi làm tham số: WriteString,LogString, và Transmitting. Phương thức đầu tiên viết một chuỗi xuất ra màn hình tiêuchuẩn, chuỗi thứ hai mô phỏng viết vào một log file, và phương thức thứ ba mô phỏng việcchuyển một chuỗi qua Internet. Chúng ta tạo thể hiện delegate để gọi những phương thứctương ứng: Writer(“String passed to Writer ”); Logger(“String passed to Logger ”); Transmitter(“String passed to Transmitter ”);Để xem cách kết hợp các delegate, chúng ta tạo một thể hiện delegate khác: MyClassWithDelegate.StringDelegate myMulticastDelegate; ...

Tài liệu được xem nhiều: