静态变量是特殊的变量类型。静态变最在被声明的方法或类的范围内保持值不变。
Static (Visual Basic)
指定一个或多个已声明的局部变量将继续存在,并在其声明过程终止后保留其最新值。
备注
通常,过程停止后,过程中的局部变量将立即停止存在。 静态变量将继续存在并保留其最新值。 当你的代码下一次调用该过程时,不会重新初始化该变量,并且它仍保留你分配给它的最新值。 静态变量在定义它的类或模块的生存期内继续存在。
规则
-
声明上下文。 只能对本地变量使用
Static
。 这意味着,Static
变量的声明上下文必须是过程中的过程或块,而不能是源文件、命名空间、类、结构或模块。不能在结构过程中使用
Static
。 -
不能推断
Static
局部变量的数据类型。 有关详细信息,请参阅局部类型推理。 -
组合修饰符。 不能在同一声明中同时指定
Static
与ReadOnly
、Shadows
或Shared
。
行为
如果在 Shared
过程中声明静态变量,则整个应用程序只有一个静态变量副本可供使用。 使用类名称调用 Shared
过程,而不是指向类的实例的变量。
如果在不 Shared
的过程中声明静态变量,则该类的每个实例只能有一个变量副本。 使用指向类的特定实例的变量调用非共享过程。
Module Module1
Public Class TestStatic
Public Sub TellTheCoounterValue()
Static nCounter As Integer = 1
Console.WriteLine(nCounter)
nCounter += 1
End Sub
End Class
Sub Main()
Dim counter As New TestStatic
Dim i As Integer
For i = 1 To 10
counter.TellTheCoounterValue()
Next
Console.Read()
End Sub
End Module