[VB.NET] Phạm vi của biến

1. Phạm vi của biến
1.1 Câu lệnh rẽ nhánh.

Đây là cấp bậc nhỏ nhất.
Mã:
Public Class Form1

    Dim x As Integer '←Bien nay co tac dung tren toan bo class. Level Class

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim y As Integer '←Bien nay chi co tac dung trong sub nay. level sub, function

        If x = y Then
            Dim z As Integer '←Bien nay chi co tac dung trong khoi block nay.
            z = x + y
        End If

    End Sub

End Class
Biến số được khai báo trong xxx~end xxx thì khi kết thúc end là biến này không còn tác dụng.
Ví dụ biến z được khai báo trong If ~ End If , thì khi ra khỏi End If , biến z không còn sử dụng được nữa.
(Còn nữa)
Đề nghị không comment cho tới khi có thông báo topic này đã xong.
Nguồn:
 
1.2 Trong các khối lệnh
Ngoài cấu trúc ○○ ~ End ○○ , còn có rất nhiều cấu trúc như For ~ Next chẳng hạn.
Sau đây tôi sẽ giới thiệu các khối lệnh tiêu biểu :
If ~ End IfNếu điều kiện logic thỏa mãn thì sẽ đi vào trong khối lệnh này. Ở bên trong có thể còn có rẽ nhánh Else, ElseIf
Try ~ End TryNếu có lỗi xảy ra thì đi vào trong này. Bên trong có thể còn có rẽ nhánh Catch,Finally
While ~ End WhileTrong khi điều kiện logic thỏa mãn thì...
Using ~ End UsingMô tả quy trình đảm bảo rằng tài nguyên được giải phóng.
SyncLock ~ End SyncLockMô tả một quá trình không thể được thực thi trong nhiều luồng.
With ~ End WithMô tả quá trình tham chiếu ngầm đến đối tượng.
Do ~ LoopVòng lặp
For ~ NextVòng lặp
Select ~ End SelectMô tả quá trình phân nhánh theo các điều kiện.
Các biến được khai báo trong các khối này có phạm vi khối chỉ có thể được sử dụng trong khối đó. Nếu bạn muốn sử dụng cùng một biến trên nhiều khối, bạn cần khai báo biến bên ngoài khối và nâng phạm vi của biến lên cao hơn một bậc.
Hãy xem ví dụ dưới đây :

Bạn cần đăng nhập để thấy hình ảnh

Trong code trên tôi có ba khối block.
Tôi khai báo biến userName ở khối đầu tiên.
Và khi chạy code trên lập tức sẽ báo lỗi, thông báo biến userName chưa được khai báo.
(còn nữa)
 

tuhocvba

Administrator
Thành viên BQT
Mã:
Dim userName as String
Với biến string, trong VB.NET nếu không khai báo giá trị khởi tạo ban đầu, VB.NET thường sẽ có cảnh báo. Nếu như có lỗi xảy ra, biến string này nhận giá trị là Null, khi đó các hàm xử lý chuỗi ký tự ở phía sau, chẳng hạn như hàm Len(s) có khả năng sẽ có lỗi.
Ngay khi khai báo biến, nếu ta gán giá trị khởi tạo cho biến, thì cảnh báo này sẽ biến mất.
Chẳng hạn:
Mã:
Dim s as string = ""
Hoặc:
Mã:
Dim s as string = Nothing
 
Top