Sự khác nhau chính giữa thủ tục và hàm là bạn có thể lấy thông tin trả về từ hàm. Thông tin này được gọi là giá trị trả về. Hàm có một giá trị trả về, giá trị này có kiểu là một kiểu xác định. Khi bạn viết một hàm bạn phải xác định kiểu của giá trị trả về. Hãy để tôi chỉ cho bạn cú pháp viết một hàm có các đối số và một giá trị trả về:
Private Function TenHam(ByVal TenThamso1 As KieuThamso1, ByVal
TenThamso2 As KieuThamso2, ByVal TenThamsoN As KieuThamsoN) As KieuTrave MaLenh1 MaLenh2 ... MaLenhN TenHam =GiaTriTreVe End Function
Chú ý các từ "Private", "Function", và "End Function" là từ khoá. Chúng có màu xanh. Tên hàm có thể là một tên bất kỳ không trùng với các từ khoá của Visual Basic .NET. Tên hàm nên thể hiện được chức năng của hàm. Danh sách tham số và kiểu tham số được chứa trong cặp dấu ngoặc đơn ngay sau tên của hàm. Các tham số được phân cách với nhau bởi dấu phẩy. Bạn có thể dùng số tham số không hạn chế, nhưng chỉ có duy nhất một giá trị trả về. Bạn phải xác định kiểu của giá trị trả về (ví dụ, As Integer hoặc As String). Dòng cuối cùng để đặt giá trị trả về. Chú ý là dòng lệnh này gán cho tên của hàm giá trị mà hàm sẽ trả về.
Một ví dụ thực tế sẽ giúp giải thích cú pháp của hàm. Các bạn tạo một ứng dụng Windows gọi là FunctionJunction . Mở cửa sổ mã lệnh và tìm dòng mã lệnh: "Windows Forms Designer generated code". Tại dòng tiếp theo của dòng này hãy thêm dòng lệnh sau đây vào:
Private Function NhanHaiSo (ByVal Thuaso1 As Integer, ByVal Thuaso2 As Integer)
As Integer
NhanHaiSo = Thuaso1 * Thuaso2
End Function
Hàm này gọi là NhanHaiSo có hai tham số có kiểu là số nguyên Thuaso1 và Thuaso2. Kiểu trả về là xác định ngay sau danh sách tham số, trong trường hợp này, nó được xác định là một số nguyên (As Integer). Trong thân hàm chứa dòng lệnh:
NhanHaiSo = Thuaso1 * Thuaso2
Dòng mã lệnh này nhân hai đối số và gán kết quả cho giá trị trả về. Tên hàm là NhanHaiSo phải được sử dụng như là tên của giá trị trả về nếu không sẽ có lỗi.
Bây giờ, hãy gọi hàm này và sử dụng giá trị của nó trong chương trình.