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 p9 doc - Pdf 19

Ngôn Ngữ Lập Trình C#
public static comparison WhichStudentComesFirst( Object o1, Object o2)
{
Student s1 = (Student) o1;
Student s2 = (Student) o2;
return (String.Compare( s1.name, s2.name) <0 ?
comparison.theFirstComesFirst :
comparison.theSecondComesFirst);
}
public override string ToString()
{
return name;
}
// biến lưu tên
private string name;
}
public class Test
{
public static void Main()
{
// tạo ra hai đối tượng Student và Cat
// đưa chúng vào hai đối tượng Pair
Student Thao = new Student(“Thao”);
Student Ba = new Student(“Ba”);
Cat Mun = new Cat(5);
Cat Ngao = new Cat(2);
Pair studentPair = new Pair(Thao, Ba);
Pair catPair = new Pair(Mun, Ngao);
Console.WriteLine(“Sinh vien \t\t\t: {0}”, studentPair.ToString());
Console.WriteLine(“Meo \t\t\t: {0}”, catPair.ToString());
// tạo ủy quyền

Sau khi sap xep nguoc catPair : 5, 2

Trong đoạn chương trình thử nghiệm trên chúng ta tạo ra hai đối tượng Student và hai đối
tượng Cat sau đó đưa chúng vào hai đối tượng chứa Pair theo từng loại. Bộ khởi dựng của lớp
Student lấy một chuỗi đại diện cho tên của sinh viên và bộ khởi dựng của lớp Cat thì lấy một
số int đại diện cho trọng lượng của mèo.
Student Thao = new Student(“Thao”);
Student Ba = new Student(“Ba”);
Cat Mun = new Cat(“5”);
Cat Ngao = new Cat(“2”);
Pair studentPair = new Pair(Thao, Ba);
Pair catPair = new Pair(Mun, Ngao);
Console.WriteLine(“Sinh vien \t\t\t: {0}”, studentPair.ToString());
Console.WriteLine(“Meo \t\t\t: {0}”, catPair.ToString());
Sau đó chương trình in nội dung chứa bên trong của hai đối tượng chứa Pair, và chúng ta có
thể thấy thứ tự như sau:
Sinh vien : Thao, Ba
Meo : 5, 2
Cơ Chế Ủy Quyền - Sự Kiện
314
Ngôn Ngữ Lập Trình C#
Thứ tự xuất hiện của nó chính là thứ tự đưa vào. Tiếp theo chúng ta khởi tạo hai đối tượng ủy
quyền:
Pair.WhichIsFirst theStudentDelegate = new
Pair.WhichIsFirst( Student.WhichStudentComesFirst);
Pair.WhichIsFirst theCatDelegate = new
Pair.WhichIsFirst( Student.WhichCatComesFirst);
Ủ y quyền đầu tiên theStudentDelegate được tạo ra bằng cách truyền vào một phương thức
tĩnh tương ứng của lớp Student. Đối tượng ủy quyền thứ hai, theCatDelegate được một
phương thức tĩnh của lớp Cat.

Ngôn Ngữ Lập Trình C#
studentPair.ToString());
catPair.Sort( theCatDelegate);
Console.WriteLine(“Sau khi sap xep catPair\t\t:{0}”, catPair.ToString());
catPair.ReverseSort(Cat.OrderCats);
Console.WriteLine(“Sau khi sap xep nguoc catPair\t\t:{0}”, catPair.ToString());
Kết quả thực hiện tương tự như trong ví dụ 11.1
Sử dụng ủy quyền như thuộc tính
Đối với ủy quyền tĩnh thì chúng bắt buộc phải được tạo thể hiện, do tính chất tĩnh, mà
không cần biết là chúng có được sử dụng hay không, như lớp Student và Cat trong ví dụ bên
trên. Chúng ta có thể phát triển những lớp này tốt hơn bằng cách thay thế ủy quyền tĩnh từ
trường thành thuộc tính.
Với lớp Student ta có thể chuyển khai báo:
public static readonly Pair.WhichIsFirst OrderStudent =
new Pair.WhichIsFirst( Student.WhichStudentComesFirst);
thành khai báo như sau:
public static Pair.WhichIsFirst OrderStudents
{
get
{
return new Pair.WhichIsFirst( WhichStudentComesFirst);
}
}
Tương tự như vậy chúng ta thực hiện thay thế với lớp Cat:
public static Pair.WhichIsFirst OderCats
{
get
{
return new Pair.WhichIsFirst( WhichCatComesFirst);
}

Console.WriteLine(“An image created”);
}
}
Chúng ta có thể tưởng tượng rằng việc xuất ra chuỗi như vậy tương ứng với việc tạo một
ảnh .gif hay .jpeg hay đại loại như vậy.
Sau đó lớp ImageProcessor khai báo một ủy quyền. Dĩ nhiên là chúng ta có thể định nghĩa
một ủy quyền riêng trả về bất cứ kiểu dữ liệu nào hay lấy bất cứ tham số nào mà chúng ta
muốn. Trong ví dụ này chúng ta định nghĩa một ủy quyền có thể đóng gói bất cứ phương thức
không có giá trị trả về và cũng không nhận bất cứ tham số nào hết:
public delegate void DoEffect();
Tiếp tục lớp ImageProcessor khai báo một sô phương thức, và từng phương thức này phù
hợp với ký pháp và kiểu trả về được khai báo bởi ủy quyền:
public static void Blur()
{
Console.WriteLine(“Blurring image”);
}
Cơ Chế Ủy Quyền - Sự Kiện
317


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status