.NET では、通常、変数参照 = ( C# では)を設定する必要はありません。ガベージ コレクターは最終的にクリーンアップします。参照自体は、スコープ外になると破棄されます (メソッドが終了するとき、またはこのクラスのオブジェクトがファイナライズされるとき)。これは、オブジェクトが破棄されることを意味するのではなく、オブジェクトへの参照だけであることに注意してください。オブジェクトは、コレクターによって非決定論的に破棄されます。Nothing
null
ただし、 reference =Nothing
を設定すると、オブジェクトがガベージである可能性があり、コードの乱雑さを除けば、必ずしも何も害を及ぼすわけではないというヒントが.NETに提供されます。そこに保持する場合は、Try
ブロックから削除することをお勧めします。すでにFinally
ブロックにあるため、常に呼び出されます。(特定の壊滅的な例外は別として。ただし、そのような場合は、Try
ブロック内でも呼び出されません!)
最後に、私は Greg に同意することを認めなければなりません。これがなければ、あなたのコードはよりきれいになります。参照が完了したというランタイムへのヒントは素晴らしいですが、確かに重要ではありません。正直なところ、これをコード レビューで見たら、おそらく開発者に次のように書き直してもらいます。
Dim a as Object
Dim i as Integer = 0
For i=1 to 5
a = new Object()
'Do stuff
Next