
1
Chương
Chương 17
17
To
Toá
án t
n tử
ửn
nạ
ạp ch
p chồ
ồng
ng
Nguy
Nguyễ
ễn H
n Hồ
ồng Phương
ng Phương
Khoa CNTT,
Khoa CNTT, ĐHBKHN
ĐHBKHN

2
L
Là
àm vi
m việ
ệc v
c vớ
ới c
i cá
ác to
c toá
án t
n tử
ử
•Bạn dùng các kí hiệu toán tửchuẩn (vd:
+, -) đểthực thi các thao tác chuẩn (vd:
cộng, trừ) trên các kiểu (vd: int, double)
•Các kiểu số được xây dựng sẵn đi cùng với
các hành vị được định nghĩa trước của
chúng cho mỗi toán tử nhưng các kiểu
định nghĩa người dùng thì không.
• C# cho phép các kiểu định nghĩa người
dùng thực thi hành vi quen thuộc.

3
To
Toá
án t
n tử
ử
•Mỗi kí hiệu toán tửcó 1 quyền ưu
tiên. Vd: * có quyền cao hơn +
•Sựkết hợp từtrái qua phải hay từ
phải qua trái.
•Toán tử1 ngôi là toán tửchỉcó 1
toán hạng,vd: ++
•Toán tử2 ngôi là toán tửcó 2 toán
hạng, vd: *

4
Th
Thự
ực thi c
c thi cá
ác r
c rà
àng bu
ng buộ
ộc to
c toá
án t
n tử
ử
• C# cho phép bạn thực thi hầu hết các kí
hiệu toán tử đang tồn tại cho các kiểu của
chính bạn
•Các quy tắc:
– Không thể thay đổi độ ưu tiên và sựkết hợp
của 1 toán tử. VD: a+b*c thì luôn là a+(b*c).
– Không thểthay thếsốtoán hạng của 1 toán
tử.VD: Toán tử* luôn là 2 ngôi.
– Không thểphát minh ra kí hiệu toán tửmới.
VD: phép ** cho lũy thừa!!!
– Không thể thay đổi ý nghĩa của các toán tửkhi
áp dụng cho những kiểu có sẵn.
–Cóvài kíhiệu toán tửmà bạn không thểnạp
chồng.VD: toán tửchấm (truy cập thành phần)

5
C
Cá
ác to
c toá
án t
n tử
ửn
nạ
ạp ch
p chồ
ồng
ng
•Để định nghĩa hành vi toán tửcủa
chính bạn, bạn phải nạp chồng 1 toán
tử được chọn.
•Bạn dùng cú pháp như phương thức
với kiểu trảvềcác tham số nhưng
tên của phương thức là từkhóa
operator cùng kí hiệu toán tửbạn
đang khai báo.
•Vídụ: cấu trúc Hour định nghĩa toán
tử 2 ngôi đểcộng 2 thểhiện của Hour
lại:

