Danh mục

Giáo trình hướng dẫn tạo chuỗi dùng phương thức Tostring sử dụng biểu thức quy tắc qua lớp regex p10

Số trang: 5      Loại file: pdf      Dung lượng: 867.54 KB      Lượt xem: 9      Lượt tải: 0    
Hoai.2512

Hỗ trợ phí lưu trữ khi tải xuống: miễn phí Tải xuống file đầy đủ (5 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Lớp ImageProcessor cần thiết có một mảng để lưu giữ các ủy quyền mà người sử dụng chọn, một biến lưu giữ số hiệu ứng được chọn và dĩ nhiên là có một biến ảnh để xử lý:DoEffect[] arrayOfEffects; Image image; int numEffectsRegistered = 0; ImageProcessor cũng cần { if (numEffectsRegistered =0) { throw new Exception(“Too many members in array”); } arrayOfEffects[numEffectsRegistered ++] = theEffect; }
Nội dung trích xuất từ tài liệu:
Giáo trình hướng dẫn tạo chuỗi dùng phương thức Tostring sử dụng biểu thức quy tắc qua lớp regex p10 Ngôn Ngữ Lập Trình C# public static void Filter() { Console.WriteLine(“Filtering image”); } public static void Sharpen() { Console.WriteLine(“Sharpening image”); } public static void Rotate() { Console.WriteLine(“Rotating image”); }Lớp ImageProcessor cần thiết có một mảng để lưu giữ các ủy quyền mà người sử dụng chọn,một biến lưu giữ số hiệu ứng được chọn và dĩ nhiên là có một biến ảnh để xử lý: DoEffect[] arrayOfEffects; Image image; int numEffectsRegistered = 0;ImageProcessor cũng cần một phương thức để thêm các ủy quyền vào trong mảng: public void AddToEffects( DoEffect theEffect) { if (numEffectsRegistered >=0) { throw new Exception(“Too many members in array”); } arrayOfEffects[numEffectsRegistered ++] = theEffect; }Ngoài ra còn cần một phương thức thật sự gọi các ủy quyền này: public void ProcessImage() { for (int i = 0; i < numEffectsRegistered; i++) { arrayOfEffects[i](); } }Cuối cùng, chúng ta khai báo những ủy quyền tĩnh, để các client gọi, và chặn chúng lại để xửlý những phương thức: public DoEffect BlurEffect = new DoEffect(Blur); public DoEffect SharpenEffect = new DoEffect(Sharpen); 318 Cơ Chế Ủy Quyền - Sự Kiện Ngôn Ngữ Lập Trình C# public DoEffect FilterEffect = new DoEffect(Filter); public DoEffect RotateEffect = new DoEffect(Rotate);Việc chọn các thao tác diễn ra trong quá trình tương tác ở thành phần giao diện người sửdụng. Trong ví dụ này chúng ta mô phỏng bằng cách chọn các hiệu ứng, thêm chúng vàotrong mảng, và ProcessImage. Ví dụ minh họa 11.2: Sử dụng mảng ủy quyền.-----------------------------------------------------------------------------namespace Programming_CSharp{ using System; // khai báo lớp ảnh public class Image { public Image() { Console.WriteLine(“An image created”); } } // lớp xử lý ảnh public class ImageProcessor { // khai báo ủy quyền public delegate void DoEffect(); // tạo các ủy quyền tĩnh public DoEffect BlurEffect = new DoEffect(Blur); public DoEffect SharpenEffect = new DoEffect(Sharpen); public DoEffect FilterEffect = new DoEffect(Filter); public DoEffect RotateEffect = new DoEffect(Rotate); // bộ khởi dựng khởi tạo ảnh và mảng public ImageProcessor(Image image) { this.image = image; arrayOfEffects = new DoEffect[10]; } // thêm hiệu ứng vào trong mảng public void AddToEffects( DoEffect theEffect) { if (numEffectsRegistered >=0) 319 Cơ Chế Ủy Quyền - Sự Kiện Ngôn Ngữ Lập Trình C# { throw new Exception(“Too many members in array”); } arrayOfEffects[numEffectsRegistered ++] = theEffect; } // các phương thức xử lý ảnh public static void Blur() { Console.WriteLine(“Blurring image”); } public static void Filter() { Console.WriteLine(“Filtering image”); } public static void Sharpen() { Console.WriteLine(“Sharpening image”); } public static void Rotate() { Console.WriteLine(“Rotating image”); } // gọi các ủy quyền để thực hiện hiệu ứng public void ProcessImage() { for (int i = 0; i < numEffectsRegistered; i++) { arrayOfEffects[i](); } } // biến thành viên private DoEffect[] arrayOfEffects; private Image image; private int numEffectsRegistered = 0; } // lớp Test để kiểm chứng chương trình public class Test { 320Cơ Chế Ủy Quyền - Sự Kiện 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(thePr ...

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