なぜこれが起こっているのかはある程度理解できますが、完全ではありません。次のように宣言されたShared
( ) 変数を持つ基本クラスがあります。Static
Public Shared myVar As New MyObject(arg1, arg2)
派生クラスのメソッドで、次のようにローカル変数を設定します。
Dim myLocalVar As MyObject = myVar
のようなことをするmyLocalVar.Property1 += value
と、値Property1
はそのメソッドの次の呼び出しまで持続します! なぜそれが起こっているのかがわかると思います。myVar
値ではなく参照によって設定されていますが、これまでにこのようなものに遭遇したことはありません。のプロパティ値を使用して新しいオブジェクトを作成するという私の回避策以外に、値で作成する方法はありmyVar
ますmyLocalVar
か?