Thường thường, ta đặt tên quy ước cho methods bằng động từ chỉ công việc thực hiện và tên phải đầy đủ ý nghĩa, tỷ như:
GetCustomerName OpenCustomerRecord CalculateRepaymentPerMonth ReadXMLFile GetEnvironementVariables SaveMyNetworkConfiguration 6.7 Phạm vi (Scope)
Nhắc lại, method là nguồn mã chạy độc lập, do đó các biến số (variables) được tuyên bố trong một method chỉ có ý nghĩa khi dùng trong method đó mà thôi. Ta gọi là trong phạm vi method hay scope. Biến số (variables) dùng trong method này không có một chút ảnh hưởng gì đến biến số (variables) trong method khác, tỷ như:
Sub DisplayMyName Dim strName
strName = "Vũ Năng Hiền" MessageBox.Show(strName) End Sub
Sub DisplayYourName Dim strName
strName = "Đặng Quang Lương" MessageBox.Show(strName) End Sub
Ta nhận thấy 2 subroutine có cùng 1 biến số (variables) strName nhưng giá trị 2 biến số (variables) này khác nhau. Thay đổi giá trị biến số strName trong subroutine
DisplayMyName không làm thay đổi giá trị biến số strName trong subroutine DisplayYourName.
Bài tập 1:
Bài tập cho việc sử dụng Subroutine và Function để tính diện tích 1 hình chữ nhật có chiều dài 100 m và chiều cao (hay chiều sâu) 10 m.
Bước 1:
Bước 2:
Thiết kế giao diện tính diện tích như sau:
Giao diện gồm 1 nhãn hiệu (label) và 1 nút (button) để hiển thị kết quả tính nhân cho diện tích hình chữ nhật. Nhớ đặt tên theo quy ước đã định trước, tỷ như:
lblCalculateRectangleArea cho nhãn hiệu, btnCalculateRectangleArea cho nút tính
Bước 3:
Cách nhập nguồn mã
Nhấp đôi vào nút CalculateRectangleArea và gỏ mã như sau:
Private Sub btnCalculateRectangleArea_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnCalculateRectangleArea.Click
MessageBox.Show("Rectangle Area = " & CalculateRectangleArea(100, 10), "Rectangle Area")
End Sub
Function CalculateRectangleArea(ByVal intWidth As Integer, ByVal intHeight As Integer) CalculateRectangleArea = intWidth * intHeight
Trong subroutine trên, ta dùng Function CalculateRectangleArea với 2 thông số
(parameters) là 100 (metres) cho chiều dài và 10 (metres) cho chìều cao hình chữ nhật để
trả kết quả tính nhân về subroutine btnCalculateRectangleArea_Click, hiển thị với đối tượng (object) MessageBox.
So sánh và kiểm tra mã với hình dưới đây:
Bước 4:
Lưu trữ dự án trước khi chạy ứng dụng.
Lưu ý:
Khi lưu trữ dự án, ta cần lưu trữ dưới dạng Unicode vì có chữ Việt trong dự án như trình bày trong bài tập 2. Tuy nhiên, để khích thích và phát huy việc tự học của ta, hãy khoan tham khảo phần hướng dẫn trong bài tập 2 mà tự bạn thử truy tìm giải đáp trước.
Chạy và kiểm tra dự án:
Bài tập 2:
Bài tập cho việc hiểu phạm vi (scope) của biến số (variables) trong Subroutine dùng hiển thị tên người nào đó.
Bước 1:
Tạo dự án Scope trong MS Visual Studio.NET:
Bước 2:
Bước 3:
Nhấp đôi nút Display My Name và nút Display Your Name để nhập nguồn mã như trình bày trong phần 6.7 Phạm Vi (Scope).
Bước 4:
Khi lưu trữ (dùng Save As) Form và dự án, chọn Save with Encoding ...
Sau đó, chọn một trong những Encoding yểm trợ Unicode, tỷ như: Unicode (UTF-8
without signature) - Codepage 65001 như sau:
Bước 5:
Sau khi lưu trữ, chạy chạy kiểm tra ứng dụng và nhấp vào nút Display My Name:
Bước 6:
Khi nhấp vào nút Display Your Name:
Ta lại có:
Quả nhiên, tuy 2 subroutine khác nhau dùng chung một tên biến số (variables) strName, không biến số nào ảnh hưởng đến biến số nào.
Bài làm ở nhà (Homework)Bài tập 1: Bài tập 1:
Tạo dự án Home Loan Calculator dùng Subroutine và Function tính toán số tiền trả hàng tháng sau khi mượn tiền nhà băng (bank) mua nhà trả góp trong 20 năm.
Gợi ý:
1. Function MonthlyPayment có thể tính với công thức như sau:
MonthlyPayment = LoanAmount * ( MonthlyInterest * (( 1 + MonthlyInterest) ^ Months ) / ((( 1 + MonthlyInterest) ^ Months) - 1 ))
2. Ta sẽ phải dùng biến số (variables) loại nào để lưu trữ và tính toán số lẻ? 3. Nhớ sử dụng quy ước đặt tên theo tiêu chuẩn định trước.
Bài tập 2:
Tạo dự án Greeting với giao diện gồm 3 nút hiển thị các câu chào tiếng Anh: • Good Morning
• Good Afternoon • Good Nigth hoặc tiếng Nhật như sau:
• Konichi wa • Kon ban wa • O Yashumi Nasai
với 1 biến số (variables) cùng tên strGreeting trong mỗi subroutine.
Bài 7