次の方法で共有


Static (Visual Basic)

宣言された 1 つ以上のローカル変数が引き続き存在し、宣言されているプロシージャの終了後も最新の値を保持することを指定します。

注釈

通常、プロシージャ内のローカル変数は、プロシージャが停止するとすぐに存在しなくなります。 静的変数は引き続き存在し、最新の値を保持します。 次にコードがプロシージャを呼び出す場合、変数は再初期化されず、割り当てた最新の値が保持されます。 静的変数は、定義されているクラスまたはモジュールの有効期間中も存在し続けます。

準則

  • 宣言コンテキスト。 Staticはローカル変数でのみ使用できます。 つまり、 Static 変数の宣言コンテキストはプロシージャまたはプロシージャ内のブロックである必要があり、ソース ファイル、名前空間、クラス、構造体、またはモジュールにすることはできません。

    構造体プロシージャ内で Static を使用することはできません。

  • Staticローカル変数のデータ型は推論できません。 詳細については、「 ローカル型の推論」を参照してください。

  • 結合された修飾子。 同じ宣言でReadOnlyShadows、またはSharedと共にStaticを指定することはできません。

行動

Shared プロシージャで静的変数を宣言すると、アプリケーション全体で使用できる静的変数のコピーは 1 つだけです。 クラスのインスタンスを指す変数ではなく、クラス名を使用して Shared プロシージャを呼び出します。

Sharedされていないプロシージャで静的変数を宣言すると、クラスのインスタンスごとに変数のコピーは 1 つだけ使用できます。 クラスの特定のインスタンスを指す変数を使用して、非共有プロシージャを呼び出します。

次の例では、Staticの使用方法を示します。

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

Static変数totalSalesは 1 回だけ 0 に初期化されます。 updateSalesを入力するたびに、totalSalesには計算した最新の値が残っています。

Static修飾子は、次のコンテキストで使用できます。

Dim ステートメント

こちらも参照ください