• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SetとNothingの存在意味?)

SetとNothingの存在意味?

このQ&Aのポイント
  • セットとノーシングの意味について質問です。
  • 数値とオブジェクトの変数セットについて、それぞれの意味を教えてください。
  • オブジェクトの場合、インスタンスを生成しない単なる参照の場合にはNothingは不要なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.1

生成したかどうかは、関係ないと思います。 オブジェクトは、「参照カウンタ」と言う情報を持っていて、 何かから参照される(例えば変数に設定されるとか)すると、 このカウンタが+1され、(Nothing等で)参照されなくなると、カウンタが-1されます。 で、カウンタが0になると「誰からも参照されていない」と言う事で、 破棄されます。 昔の古いVB(VB4だかVB5?)で、プロシージャが終了して、 ローカル変数が解放される際に、 この参照カウンタが-1されないと言うバグがあったため(VB6等では直ってます)、 確実にカウンタを-1するための、おまじないとして、明示的に > set obj = Nothing を実行する様になりました。 そういう意味で言うと、提示された状況では、 「ループの中で毎回実行する必要は無いにしても、 ループ終了後、1回実行しておいた方が良い」かも・・・ #無くても大丈夫だとは思いますけど・・・