Static (Visual Basic)

指定在声明一个或多个局部变量的过程终止后,这些已声明的局部变量将继续存在并保留其最新值。

注解

通常,过程停止后,过程中的局部变量就会不复存在。 静态变量仍然存在并保留其最新值。 下次代码调用该过程时,变量不会重新初始化,并且仍保留你分配给它的最新值。 静态变量在定义它的类或模块的生存期内继续存在。

规则

  • 声明上下文。 只能对局部变量使用 Static。 这意味着 Static 变量的声明上下文必须是过程或过程中的块,不能是源文件、命名空间、类、结构或模块。

    不能在结构过程中使用 Static

  • 无法推断 Static 局部变量的数据类型。 有关详细信息,请参阅本地类型推断

  • 组合修饰符。 不能在同一过程声明中同时指定 StaticReadOnlyShadowsShared

行为

Shared 过程中声明静态变量时,只有一个静态变量副本可用于整个应用程序。 通过使用类名而不是指向类实例的变量来调用 Shared 过程。

在非 Shared 的过程中声明静态变量时,只有一个变量副本可用于类的每个实例。 通过使用指向类的特定实例的变量来调用非共享过程。

示例

以下示例演示了 Static 的用法。

Function updateSales(ByVal thisSale As Decimal) As Decimal
    Static totalSales As Decimal = 0
    totalSales += thisSale
    Return totalSales
End Function

Static 变量 totalSales 仅初始化为 0 一次。 每次输入 updateSales 时,totalSales 仍具有你为它计算的最新值。

Static 修饰符可用于以下上下文中:

Dim 语句

另请参阅