Shared(静的〇〇〇)

メンバ(メソッドやプロパティ等)にSharedを付けることで、
そのメンバはインスタンスメンバではなくクラスメンバとなる。

・クラスのインスタンスが無くとも、当該メンバにアクセスできる。
・プロシージャが終了してもSharedメンバの値はクリアされない。
・静的メソッドは、Sharedを付与したメソッドの事。
・staticは、vbではローカル変数にしか付与できない。
・アプリケーションが終了するまでクリアされない。

Public Class Class3
  Public Shared Property outMsg As String
  Public Property outMsg2 As String
End Class

 

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    '--- SharedはClass名.メンバ名でアクセス
  Class3.outMsg += 50   

  Dim a As New Class3
  a.outMsg2 += 50
  Console.WriteLine(Class3.outMsg)
  Console.WriteLine(a.outMsg2)
End Sub

上記は、ボタンを押すたびに、outMsgは50が加算された数字が出力。
outMsg2は、毎回50が出力される。