Một trong những tiện lợi của Visual Basic.NET, và hầu hết các ngôn ngữ lập trình hiện đại khác đó là bạn có thể truyền thông tin cho thủ tục. Điều này rất là hữu ích, vì bạn có thể viết một thủ tục tạo ra các kết quả hoặc các hành động khác nhau tuỳ thuộc vào thông tin được chuyển cho nó. Những thông tin mà bạn truyền cho thủ tục được gọi là “đối số” của thủ tục. Khi bạn viết một thủ tục có các tham số bạn phải chỉ rõ số lượng tham số và kiểu của chúng.
Đây là cú pháp viết thủ tục có tham số:
Private Sub TenThuTuc (ByVal TenThamSo1 As KieuThamSo1, ByVal
TenThamSo2 As KieuThamSo2, ByVal TenThamSoN As KieuThamSoN) Lenh1
Lenh 2 ...
Lenh N
End Sub
Ở đây cặp dấu ngoặc đơn không trống. Chúng chứa danh sách tham số và kiểu của tham số của thủ tục. Để ý từ "ByVal" là từ khoá. Nên trong cửa sổ mã lệnh nó có màu xanh. Kiểu của tham số là các kiểu phổ biến như số nguyên
(Integer), chuỗi (String), v.v. Các tham số được phân cách với nhau bằng dấu phẩy.
Một ví dụ thực tế sẽ làm cho điều này trở nên rõ ràng hơn nhiều. Mở cửa sổ mã lệnh trong dự án SimpleSub. Ngay tại dòng tiếp theo của dòng chứa lệnh End Sub của thủ tục ThongBao, nhập vào mã lệnh sau :
Private Sub ThongBaoChung(ByVal noidung
As String)
MessageBox.Show(noidung)
End Sub
Thủ tục này yêu cầu phải truyền một đối số có kiểu chuỗi (String) cho nó. Khi thủ tục được gọi, nó sẽ đưa ra hộp thông báo hiển thị nội dung của đối số chuỗi mà nó nhận được.
Bây giờ hãy gọi thủ tục ThongBaoChung và truyền đối số chuỗi cho nó. Thêm một nút lệnh thứ hai vào Form1 của dự án SimpleSub. Thay đổi thuộc tính Text của Button2 thành "Thông báo bất kỳ". Nhấp đúp vào Button2 để soạn thảo mã lệnh cho sự kiện nhấn nút của nó như sau:
ThongBaoChung("Bất kì thông báo nào") ThongBaoChung("Một vài thông báo còn lại") ThongBaoChung("Một thông báo khác")
Dịch và chạy ứng dụng. Nhấn nút " Thông báo bất kỳ". Ba thông báo được hiển thị. Điều này có thể xảy ra như thế nào? Mã lệnh của thủ tục xử lý kiện nhấn nút gọi thủ tục ThongBaoChung ba lần. Mỗi một lần nó truyền cho thủ tục đối số là một chuỗi văn bản khác nhau. Lần thứ nhất, thủ tục được gọi với đối số " Bất kì thông báo nào ". Lần thứ hai, thủ tục được gọi với đối số " Một vài thông báo còn lại". Lần thứ ba, thủ tục được gọi với đối số " Một thông báo khác ". Khi mã lệnh trong thủ tục được thực hiện, đối số truyền cho thủ tục được sử dụng bởi lệnh MessageBox.Show.
Hãy xem một ví dụ nữa. Lần này tôi sẽ viết thủ tục với hai tham số có kiểu số nguyên, thủ tục sẽ cộng giá trị của hai tham số nguyên này lại, và sau đó hiển thị kết quả trong hộp thông báo.
Thêm một thủ tục tên là Cong vào dự án SimpleSub. Thủ tục Cong như sau:
Private Sub Cong(ByVal ThamSo1 As Integer, ByVal ThamSo2 As Integer)
Dim Tong As Integer
Tong = ThamSo1 + ThamSo2
Gợi ý
Tham số sau từ khóa ByVal có nghĩa là giá trị của tham số tuy
được chuyền cho thủ tục nhưng giá trị ban đầu của tham số vẫn không thay đôi.
MessageBox.Show(Tong)
End Sub
Để ý là khi thủ tục bị gọi nó sẽ yêu cầu hai đối số nguyên. Bây giờ thêm nút lệnh thứ ba vào Form1 của dự án SimpleSub. Thay đổi thuộc tính Text của Button3 thành ”Cộng”. Nhấp đúp vào Button3 để soạn thảo mã lệnh cho sự kiện nhấn nút của nó như sau:
Cong(34, 57)
Dịch và chạy chương trình. Nhấn nút "Cộng". Hộp thông báo hiển thị 91. Mã lệnh của thủ tục xử lý sự kiện nhấn nút lệnh gọi thủ tục Cong và truyền các đối số, 34 và 57 cho thủ tục Cong. Thủ tục Cong thực hiện ba dòng lệnh. Dòng lệnh đầu khai báo biến Tong. Sau đó biến Tong được gán giá trị tổng của ThamSo1 (34) và ThamSo2 (57). Đối số ThamSo1 và ThamSo2 lưu giữ giá trị truyền cho thủ tục khi thủ tục được gọi. Cuối cùng, thủ tục hiển thị giá trị của Tong (91)
Bây giờ bạn có thể tự viết thủ tục và truyền thông tin cho nó. Tiếp bạn sẽ học cách viết các hàm. Bạn có thể truyền thông tin cho hàm bằng cách sử dụng các đối số, cũng như khi bạn làm việc với thủ tục. Nhưng khác với thủ tục là bạn có thể nhận thông tin trả về từ một hàm.