Chương 6 Nạp chồng tốn tử

Một phần của tài liệu Ứng dụng Web với Web Forms_2 pptx (Trang 26)

Mục tiêu thiết kế của C# là kiểu người dùng định nghĩa (lớp) phải được đối xử như

các kiểu định sẵn. Ví dụ, chúng ta muốn định nghĩa lớp phân số (Fraction) thì các chức năng như cộng, trừ, nhân, … phân số là điều tất yếu phải cĩ. Để làm được việc

đĩ ta định nghĩa các phương thức: cộng, nhân, … khi đĩ, ta phải viết là:

Phân_số tổng = số_thứ_nhất.cộng(số_thứ_hai);

Cách này hơi gượng ép và khơng thể hiện hết ý nghĩa. Điểu ta muốn là viết thành:

Phân_số tổng = số_thứ_nhất + số_thứ_hai;

để làm được điều này ta dùng từ khố operatorđể thể hiện. 6.1 Cách dùng từ khố operator

Trong C#, các tốn tử là các phương thức tĩnh, kết quả trả về của nĩ là giá trị biểu diễn kết quả của một phép tốn và các tham số là các tốn hạng. Khi ta tạo một tốn tử cho một lớp ta nĩi là ta nạp chồng tốn tử, nạp chồng tốn tử cũng giống như bất kỳ việc nạp chồng các phương thức nào khác. Ví dụ nạp chồng tốn tử cộng (+) ta viết như sau:

public static Fraction operator+ (Fraction lhs, Fraction rhs)

Nĩ chuyển tham sốlhs về phía trái tốn tử và rhs về phía phải của tốn tử. Cú pháp C# cho phép nạp chồng tốn tử thơng qua việc dùng từ khố operator. 6.2 Cách hổ trợ các ngơn ngữ .Net khác

C# cung cấp khả năng nạp chồng tốn tử cho lớp của ta, nĩi đúng ra là trong Common Language Specification (CLS). Những ngơn ngữ khác như VB.Net cĩ thể

khơng hổ trợ nạp chồng tốn tử, do đĩ, điều quan trọng là ta cũng cung cấp các phương thức hổ trợ kèm theo các tốn tửđể cĩ thể thực hiện được ở các mơi trường khác. Do đĩ, khi ta nạp chồng tốn tử cộng (+) thì ta cũng nên cung cấp thêm phương thức add() với cùng ý nghĩa.

6.3 Sự hữu ích của các tốn tử

Các tốn tửđược nạp chồng cĩ thể giúp cho đoạn mã nguồn của ta dễ nhìn hơn, dễ

quản lý và trong sáng hơn. Tuy nhiên nếu ta quá lạm dụng đưa vào các tốn tử quá mới hay quá riêng sẽ làm cho chương trình khĩ sử dụng các tốn tử này mà đơi khi cịn cĩ các nhầm lẩn vơ vị nữa.

Một phần của tài liệu Ứng dụng Web với Web Forms_2 pptx (Trang 26)