Static (Visual Basic)

更新:2007 年 11 月

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

备注

通常,过程终止后,此过程中的局部变量将立即消失。静态变量可继续存在,并保留其最新值。您的代码下次调用该过程时,此变量不会重新初始化,仍然保存已赋给它的最新值。静态变量在定义它的类或模块的生存期内继续存在。

规则

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

    不能在结构过程内使用 Static。

  • 无法推断出 Static 局部变量的数据类型。有关更多信息,请参见局部类型推理

  • **组合修饰符。**不能在同一声明中将 Static 与 ReadOnly、Shadows 或 Shared 同时指定。

行为

任何局部变量的行为都取决于此变量是否在 Shared 过程中声明。如果过程为 Shared,则其所有局部变量都自动共享,其中包括 Static 变量。整个应用程序只有一个这种变量的副本。使用类名调用 Shared 过程,而不是使用指向此类的实例的变量。

如果过程不是 Shared,则其局部变量为“实例变量”,其中包括 Static 变量。每个变量在类的每个实例中都有一个独立的副本。使用指向类的特定实例的变量调用非共享过程。该实例中的任何变量都与另一实例中相同名称的变量无关。因此,它们可以存储不同的值。

示例

下面的示例说明 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 语句 (Visual Basic)

请参见

概念

Visual Basic 中的生存期

Visual Basic 中的变量声明

局部类型推理

参考

Shadows

Shared (Visual Basic)

其他资源

结构:您自己的数据类型

了解类