宣言された 1 つ以上のローカル変数が引き続き存在し、宣言されているプロシージャの終了後も最新の値を保持することを指定します。
注釈
通常、プロシージャ内のローカル変数は、プロシージャが停止するとすぐに存在しなくなります。 静的変数は引き続き存在し、最新の値を保持します。 次にコードがプロシージャを呼び出す場合、変数は再初期化されず、割り当てた最新の値が保持されます。 静的変数は、定義されているクラスまたはモジュールの有効期間中も存在し続けます。
準則
宣言コンテキスト。
Static
はローカル変数でのみ使用できます。 つまり、Static
変数の宣言コンテキストはプロシージャまたはプロシージャ内のブロックである必要があり、ソース ファイル、名前空間、クラス、構造体、またはモジュールにすることはできません。構造体プロシージャ内で
Static
を使用することはできません。Static
ローカル変数のデータ型は推論できません。 詳細については、「 ローカル型の推論」を参照してください。結合された修飾子。 同じ宣言で
ReadOnly
、Shadows
、または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
修飾子は、次のコンテキストで使用できます。
こちらも参照ください
.NET