Static (Visual Basic)Static (Visual Basic)

1 つまたは複数のローカル変数が存在し、宣言されているプロシージャの終了後、最新の値を保持し続けることを指定します。Specifies that one or more declared local variables are to continue to exist and retain their latest values after termination of the procedure in which they are declared.


通常、プロシージャ内のローカル変数は、プロシージャを停止すると、すぐに存在しなくなります。Normally, a local variable in a procedure ceases to exist as soon as the procedure stops. 静的変数は引き続き存在し、最新の値を保持します。A static variable continues to exist and retains its most recent value. コードは、プロシージャを呼び出し、次回は、変数が再初期化されていないとに割り当てられている最新の値をそのまま保持します。The next time your code calls the procedure, the variable is not reinitialized, and it still holds the latest value that you assigned to it. 静的変数で定義されているクラスまたはモジュールの有効期間が存在し続けます。A static variable continues to exist for the lifetime of the class or module that it is defined in.


  • 宣言コンテキスト。Declaration Context. 使用することができますStaticローカル変数に対してのみです。You can use Static only on local variables. これは、意味の宣言コンテキスト、Static変数は、プロシージャまたはプロシージャでは、ブロックする必要があり、ソース ファイル、名前空間、クラス、構造体、またはモジュールにすることはできません。This means the declaration context for a Static variable must be a procedure or a block in a procedure, and it cannot be a source file, namespace, class, structure, or module.

    使用することはできませんStatic構造プロシージャ内にあります。You cannot use Static inside a structure procedure.

  • データ型Staticローカル変数を推論することはできません。The data types of Static local variables cannot be inferred. 詳細については、次を参照してください。ローカル型推論します。For more information, see Local Type Inference.

  • 結合された修飾子。Combined Modifiers. 指定することはできませんStaticと共にReadOnlyShadows、またはShared同じ宣言内。You cannot specify Static together with ReadOnly, Shadows, or Shared in the same declaration.


静的変数を宣言する場合、Sharedプロシージャ、静的変数の 1 つだけコピーは、アプリケーション全体で使用します。When you declare a static variable in a Shared procedure, only one copy of the static variable is available for the whole application. 呼び出す、Sharedクラスを使用してプロシージャ名、クラスのインスタンスを指す変数ではなく。You call a Shared procedure by using the class name, not a variable that points to an instance of the class.

ないプロシージャ内で静的変数を宣言するとShared、のみ、変数の 1 つのコピーが、クラスのインスタンスごとに表示します。When you declare a static variable in a procedure that isn't Shared, only one copy of the variable is available for each instance of the class. クラスの特定のインスタンスを指す変数を使用して、非共有プロシージャを呼び出します。You call a non-shared procedure by using a variable that points to a specific instance of the class.


次の例は、Static の使い方を示しています。The following example demonstrates the use of Static.

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

Static変数totalSales0 に 1 回だけ初期化されます。The Static variable totalSales is initialized to 0 only one time. 入力するたびにupdateSalestotalSalesまだ最新の値を計算しました。Each time that you enter updateSales, totalSales still has the most recent value that you calculated for it.

Static修飾子は、このコンテキストで使用できます。The Static modifier can be used in this context:

Dim ステートメントDim Statement

関連項目See also