宣告級別 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