宣告級別 Local 和 Member 變數

區域性變數 - 在類(或其他結構)的過程(子例程或函式)中宣告的變數。在這個例子中,exampleLocalVariable 是在 ExampleFunction() 中宣告的區域性變數:

Public Class ExampleClass1

    Public Function ExampleFunction() As Integer
        Dim exampleLocalVariable As Integer = 3
        Return exampleLocalVariable
    End Function

End Class

Static 關鍵字允許保留區域性變數並在終止後保持其值(通常,當包含過程終止時,區域性變數不再存在)。

在此示例中,控制檯是 024。在每次從 Main() 呼叫 ExampleSub() 時,靜態變數保留它在前一次呼叫結束時的值:

Module Module1

    Sub Main()
        ExampleSub()
        ExampleSub()
        ExampleSub()
    End Sub

    Public Sub ExampleSub()
        Static exampleStaticLocalVariable As Integer = 0
        Console.Write(exampleStaticLocalVariable.ToString)
        exampleStaticLocalVariable += 2
    End Sub

End Module

成員變數 - 在類(或其他結構)級別的任何過程之外宣告。它們可以是例項變數,其中包含類的每個例項都有自己的該變數的不同副本,或 Shared 變數,它們作為與類本身關聯的單個變數存在,獨立於任何例項。

這裡,ExampleClass2 包含兩個成員變數。ExampleClass2 的每個例項都有一個單獨的 ExampleInstanceVariable,可以通過類引用訪問。但是,使用類名訪問共享變數 ExampleSharedVariable

Module Module1

    Sub Main()

        Dim instance1 As ExampleClass4 = New ExampleClass4
        instance1.ExampleInstanceVariable = "Foo"

        Dim instance2 As ExampleClass4 = New ExampleClass4
        instance2.ExampleInstanceVariable = "Bar"

        Console.WriteLine(instance1.ExampleInstanceVariable)
        Console.WriteLine(instance2.ExampleInstanceVariable)
        Console.WriteLine(ExampleClass4.ExampleSharedVariable)

    End Sub

    Public Class ExampleClass4

        Public ExampleInstanceVariable As String
        Public Shared ExampleSharedVariable As String = "FizzBuzz"

    End Class

End Module