Mục lục:
- Thường thì bạn muốn truy vấn hoặc thay đổi giá trị trong một biến, nhưng biến này có thể truy cập được hay không phụ thuộc vào phạm vi của nó. Ví dụ, bạn luôn có thể truy cập một biến từ trong cùng một thủ tục (các hàm, các thủ tục con, và sự kiện là tất cả các thủ tục).
- các biến địa phương.
Video: Tự học lập trình VB.net - Bài 2 : Biến, cách khai báo và phạm vi sử dụng 2025
VB. Các chương trình NET được chia thành các khu, giống như Hoa Kỳ được chia thành các tiểu bang, quận hạt và các thành phố. Cũng giống như các cơ quan thực thi luật pháp có các quy mô khác nhau (cảnh sát thành phố, lính tiểu bang, và FBI, có thể đi bất cứ đâu), VB. Các đường dây lập trình NET có nhiều phạm vi ảnh hưởng. Phạm vi ảnh hưởng này, được gọi là phạm vi, áp dụng chủ yếu cho các biến (nhưng cũng có thể áp dụng cho các thủ tục - subs và các chức năng - cũng như toàn bộ các lớp).
Thường thì bạn muốn truy vấn hoặc thay đổi giá trị trong một biến, nhưng biến này có thể truy cập được hay không phụ thuộc vào phạm vi của nó. Ví dụ, bạn luôn có thể truy cập một biến từ trong cùng một thủ tục (các hàm, các thủ tục con, và sự kiện là tất cả các thủ tục).
Để xem cách hoạt động của nó, hãy gõ đoạn code sau vào module mã của bạn:
Private Sub Form1_Load (ByVal sender Như Hệ thống, Object, ByVal e Như hệ thống EventArgs) Xử lý MyBase. Load
Dim N As String = "Điều này"
MsgBox (N)
End Sub
Nó hiển thị This. Bây giờ hãy nhập một sub khác bên dưới phần phụ Form1_Load trong cửa sổ mã:
Public Sub TryIt ()
MsgBox (N)
End Sub
Lưu ý rằng có một đường răng cưa dưới biến N trong TryIt sub. Giữ con chuột của bạn trên đầu của dây răng cưa và VB. NET hiển thị thông báo lỗi cho bạn biết rằng Tên 'N' không được khai báo.
Mặc dù Dim được sử dụng phổ biến nhất, bạn có thể sử dụng bảy lệnh khai báo thêm: Tĩnh, Công cộng, Được bảo vệ, Bạn bè, Chia sẻ, Bạn được Bảo vệ và Riêng tư. Các lệnh bổ sung này chỉ định phạm vi (từ đó có thể truy cập các vị trí trong chương trình của bạn một biến).
Lưu ý rằng khi bạn tuyên bố một biến bên trong một thủ tục, biến chỉ hoạt động trong thủ tục đó. Khi chương trình thực thi thủ tục (hoặc sự kiện), biến sẽ trở nên sống động, thực hiện công việc của nó và sau đó chết (biến mất) ngay sau khi dòng phụ End được thực thi.
Khi biến là các biến cục bộ
Các biến chỉ sống trong một thủ tục được gọi là
các biến địa phương.
Các biến địa phương có hai đặc điểm cần ghi nhớ: Không có chương trình nào bên ngoài thủ tục riêng của chúng có thể tương tác với chúng, hoặc để đọc giá trị của chúng hoặc để thay đổi giá trị. Phạm vi của họ được giới hạn trong thủ tục riêng của họ.
- Khi VB hoàn thành việc thực hiện các thủ tục trong đó chúng cư trú, giá trị của chúng bay hơi. Nếu thủ tục đó được thực hiện lần thứ hai, bất kể giá trị nào biến địa phương chứa một lần không còn nữa. Một thực hiện các thủ tục là cuộc đời của họ.
- Có một số tình huống mà bạn không muốn giữ giá trị biến cục bộ. Trong những trường hợp này, bạn sử dụng lệnh Static chứ không phải là lệnh Dim: Private Sub Form1_Load (ByVal sender Như Hệ thống Object, ByVal e Như hệ thống EventArgs) Xử lý MyBase. Load Dim n As Integer
Tĩnh x là số nguyên
End Sub
Trong ví dụ này, biến n mất giá trị khi End Sub được thực thi. Tuy nhiên, biến x giữ lại giá trị của nó cho đến khi chương trình được đóng lại. Một cách khác để đặt nó là: Khi bạn sử dụng lệnh Static với một biến địa phương, giá trị của biến đó được bảo toàn trong suốt thời gian sử dụng của bạn.
Bạn nghĩ gì sẽ xảy ra nếu bạn đặt hai nút lệnh trên Form của bạn, và sau đó bạn chạy chương trình và nhấp Command1 đầu tiên, và sau đó nhấp Command2, trong chương trình kế tiếp này?
Private Sub Button1_Click (ByVal người gửi như hệ thống Object, ByVal e như hệ thống EventArgs) Handles Button1. Nhấp vào
Dim X Theo Số nguyên
X = 12
X = X + 5
Kết thúc Sub
Private Sub Button2_Click (Người gửi ByVal Theo Hệ thống Object, ByVal e Theo Hệ thống EventArgs) Handles Button2. Nhấp vào
Dim X dưới dạng Integer
MsgBox (X)
End Sub
Hộp thư hiển thị không có gì. Biến x trong sự kiện Nhấp chuột của Command1 là một biến hoàn toàn khác với sự kiện Nhấp chuột X trong Command2. Họ có phạm vi địa phương và chỉ đơn giản là không có mối quan hệ với nhau, không có nhiều hơn hai người lạ mặt tên là Mike sống ở Bronx và không bao giờ đáp ứng.
Nhưng nếu bạn muốn cả hai thủ tục này có thể truy cập và vận dụng cùng một biến đó? Để làm điều này, bạn xác định biến bên ngoài thủ tục của bạn. Thử nó. Nhấp vào ngay trên thủ tục đầu tiên của bạn (ngay phía trên dòng Private Sub Form1_Load) trong cửa sổ mã để di chuyển con trỏ chèn vào đó.
Bây giờ hãy gõ lệnh dưới đây:
Dim x As Integer
Đó là nơi bạn muốn đặt bất kỳ biến nào mà bạn muốn tạo ra phạm vi toàn dạng - nói cách khác, để cho phép tất cả các thủ tục trong biểu mẫu đó (Form1, trong trường hợp này) để có thể đọc và sửa đổi biến. (Khu vực mà bạn đặt các biến dạng trên form được gọi là khu vực Tuyên bố chung, trước VB. NET)
Bây giờ, với biến X biến đổi ở bên trên (ngoài) tất cả các Subs và các thủ tục khác, khi bạn chạy chương trình tương tự, bấm Command1, sau đó nhấn Command2, bạn sẽ thấy kết quả mà bạn muốn xem: số 17. Khi bạn khai báo X là toàn bộ phạm vi, hai nút có thể truy cập vào biến X.Xóa hai câu lệnh Dim mà trước đây đã tuyên bố X trong hai sự kiện Button. Bây giờ X = X + 5 và MsgBox (X) đều tham khảo cùng một biến có tên là X.
Khi một biến có phạm vi biểu mẫu, nó sẽ có sẵn cho tất cả các thủ tục trong biểu mẫu đó. Tuy nhiên, không có các thủ tục dưới bất kỳ hình thức nào khác trong dự án.