I E= T*R
5.7 Tầm vực truy xuất biến, thời gian sống của biến Tầm vực truy xuất biến
Tầm vực truy xuất biến
§ Tầm vực của một biến là tập các lệnh được phép truy xuất biến đó.
§ Như được miêu tả trong silde 7 (chương 1), VB cho phép 3 cấp độ tầm vực sau :
o cục bộ trong thủ tục : bất kỳ lệnh nào trong thủ tục đều có thể truy xuất được biến cục bộ trong thủ tục đó.
Private Sub Command1_Click()
Dim strGreeting As String 'Khai báo cục bộ ...
End Sub
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
o cục bộ trong module : bất kỳ lệnh nào trong module đều có thể truy xuất được biến cục bộ trong module đó.
Private strAddr As String 'biến cục bộ trong module Public strName As String 'biến toàn cục
o toàn cục : bất kỳ lệnh nào trong chương trình cũng có thể truy xuất được biến toàn cục.
§ Trong một ngữ cảnh (cùng 1 thủ tục, cùng 1 module, hay cấp toàn cục), không thể dùng hai biến cùng tên (VB không phân biệt chữ HOA hay chữ thường).
Thời gian sống của biến
§ Biến là 1 thực thể nên cũng có thời gian sống hữu hạn, thời gian sống của biến thường phụ thuộc vào tầm vực của biến đó :
o biến cục bộ trong thủ tục : được tạo ra lúc thủ tục được gọi và mất đi khi thủ tục kết thúc việc xử lý và điều khiển được trả về lệnh gọi.
o biến cục bộ trong module : được tạo ra lúc module được tạo ra và mất đi khi module bị xóa.
• Các (standard) modules có thời gian sống từ lúc chương trình chạy cho đến khi chương trình kết thúc.
• Các đối tượng của class module hay form module được tạo ra khi có yêu cầu cụ thể. Tạo đối tượng nghĩa là tạo các thuộc tính của nó, các thuộc tính của đối tượng sẽ mất đi khi đối tượng bị xóa.
o biến toàn cục : được tạo ra lúc chương trình bắt đầu chạy và chỉ mất đi khi chương trình kết thúc.
§ Muốn kéo dài thời gian sống của 1 biến, ta thường dùng 2 cách sau :
o nâng cấp tầm vực : từ cục bộ trong thủ tục lên cục bộ trong module hay lên toàn cục... Cách này ít được dùng tường minh vì nó sẽ thay đổi tầm vực của biến. Để khắc phục điều này, VB cung cấp khái niệm "Static" kết hợp với biến : biến có thuộc tính "Static" sẽ tồn tại mãi và chỉ mất đi khi chương trình kết thúc bất chấp tầm vực của nó ra sao.
Private Sub Command1_Click()
http://www.foxitsoftware.com For evaluation only.
Dim strGreeting As String 'biến cục bộ Static strAddr As String
'biến cục bộ có thời gian sống lâu dài theo ứng dụng. ...
End Sub
o ghi giá trị biến ra môi trường chứa tin bền vững (file trên đĩa) trước khi biến bị xóa. Khi cần lại giá trị của biến này, ta đọc giá trị của nó từ file vào. Đây là
phương pháp thông dụng để trao đổi dữ liệu giữa 2 ứng dụng khác nhau hay giữa 2 lần chạy khác nhau của cùng 1 ứng dụng.