I E= T*R
Cơ chế truyền tham số (tt)
Dùng từkhóaByValkết hợp với tham sốhình thứcđểkhai báo nóđược truyền bằng giá trị. Khi gọi thủtục, giá trịcủa tham sốthựcsẽ được truyền cho thủtục cần thực thi. Nhờcách truyền tham sốnày mà thủtục cần thực thi sẽkhông thểtruy xuất dữliệu của thủtục gọi. Tuy nhiên cách truyền bằng giá trịchỉthích hợp cho các tham sốIN (truyền từ phần tửgọiđến thủtục cần gọi) có kiểu vô hướng (scalar).
Đểtruyền hiệu quảtham sốcó nội dung chiếm nhiều ô nhớhay đểnhận kết quảta sẽphải dùng cơchếtruyền bằng tham khảo (địa chỉ). Để định nghĩa tham sốhình thứcđược truyền bằng tham khảo, ta dùng từkhóa
ByRefkết hợp với tham sốhình thứcđó. Khi gọi thủtục, địa chỉcủa tham sốthựcsẽ được truyền cho thủtục cần thực thi. Vớiđặcđiểm này, tham sốthực phải là biến chứkhông thểlà biểu thức.
Lưu ý rằng nếu ta không dùng từkhóa ByRef hay ByVal kết hợp với tham sốhình thức thì default nóđược truyền bằng tham khảo.
Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM
Môn : Tin học
Slide 251
// version truyền bằng giá trị
Private Sub Hoanvi1(ByVal x As Integer, ByVal y As Integer) Dim tmp As Integer
tmp = x x = y y = tmp End Sub
// version truyền bằng tham khảo
Private Sub Hoanvi2(ByRef x As Integer, ByRef y As Integer) Dim tmp As Integer
tmp = x x = y y = tmp End Sub
// version truyền bằng tham khảo
Private Sub Hoanvi3(x As Integer, y As Integer) Dim tmp As Integer tmp = x x = y y = tmp End Sub Cơchếtruyền tham số (tt) Chương 9 : Định nghĩa thủtục & sửdụng
Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM
Môn : Tin học
Slide 252
Hãy khảo sát kỹ3 thủtục hoán vịdữliệu trong slide trước. Bây giờhãy chú ý tới việc sửdụng chúng và kết quả đạtđược :
...
Dim intN As Integer Dim intM As Integer
intN = 4 intM = 8
Call Hoanvi1(intN, intM) ' kết quảintN = 4 và intM = 8 (khôngđổi) Call Hoanvi2(intN, intM) ' kết quảintN = 8 và intM = 4 (đã hoán vị được) Call Hoanvi3(intN, intM) ' kết quảintN = 4 và intM = 8 (đã hoán vị được) ...
Cơchếtruyền tham số (tt)
Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM
Môn : Tin học
Slide 253
9.6 Các thủtục định sẵn của VB
Vềnguyên tắc, người lập trình phảiđịnh nghĩa thủtục (Sub, Function, Property) trước khi có thểsửdụng lại (gọi) nó. Tuy nhiên, VB đãđịnh nghĩa rất nhiều thủtục dạng Sub, Function đểthực hiện các chức năng rất phổbiến, người lập trình có thểgọi chúng bất cứkhi nào cần thiết. Ta gọi các thủtục này là các thủtụcđịnh sẵn của VB.
Nếu chưađòi hỏiđộchính xác cao, người ta còn gọi các thủtụcđịnh sẵn của VB là các lệnh thực thi.
Sauđây ta chúng ta hãy làm quen với 1 sốthủtục thường dùng.
Chương 9 : Định nghĩa thủtục & sửdụng
Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM
Môn : Tin học
Slide 254