変数の寿命

・Classの直下に宣言した変数は、Classが破棄されるまでクリアされない。

・Staticな変数は、Classが破棄されるまでクリアされない。

・Sharedな変数はアプリが終了するまで。

・Sharedなメソッド内のStaticな変数はアプリが終了するまでクリアされない。

 

Public Class Form1
  Dim img As Image ←クラスが破棄されるまでクリアされない
  Shared val as Intefer ←アプリが終了するまでクリアされない
  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim a As New Class3 ←Button1_Clickが最後まで流れたらクリアされる
    Dim b as integer ←Button1_Clickが最後まで流れたらクリアされる
    Static Dim c As Integer ←クラスが破棄されるまでクリアされない
  End Sub

Public Shared Function sharedTestFunc() As Boolean
  Dim hSharedHiStatic As Integer
  Static Dim bSharedStatic As Integer ←アプリが終了するまでクリアされない
  hSharedHiStatic += 1
  bSharedStatic += 1
  a += 1
  Console.WriteLine($"Shared且つ非Static{hSharedHiStatic}
  Shared且つStatic{bSharedStatic}")
  Return True
End Function

End Class