声明级别 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