- - PR -
終了処理について
«前のページへ
1|2|3|4
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-04-05 11:12
まぁ、アプリとしての後処理をやった後なら害はなさそうですね。 Endは、VB6以前のというか、主にVB4や、VB5の初期の頃に いろいろなBBSで定期的に話題になっていましたように思います。 ローカル変数に対するSet XXX = Nothingなんかも。 どちらも必要のない処理ですが、都市伝説みたいなもので、 割と多くの人が「とりあえずやっとけ」的に言っていた時代がありました。 #一部は昔のVBのバグ等への対応の名残だったりするものもあるかもしれません・・・ ちなみにForm_Unloadの最後にEndをする理由は本質的な問題のごまかしです。 よくあったのが、Unload後にFormのプロパティを操作してしまい、 暗黙にFormがLoadされてしまって「何故か終了しない!!!」と困ったあげく Endを書けば終了するぞ、うん、これが正解だ、と勘違いした人が多かったから というのが真相だと思います。 (会社などで悪しき慣習が口伝で伝えられたり・・・orz) #そして、2005で暗黙のインスタンス復活!ヽ(´ー`)ノ [ メッセージ編集済み 編集者: よねKEN 編集日時 2007-04-05 11:18 ] | ||||||||||||
|
投稿日時: 2007-04-05 11:34
VB6の時代ですが、ActiveX DLLでサブプログラムを数百個作って、 どれかのモジュールにて「End」ステートメントを使用されていて、 必ず処理の途中で死んでいたのを見たことがあります。 | ||||||||||||
|
投稿日時: 2007-04-05 14:35
余談ですが、VB6でマルチスレッドのActiveX EXEを作ると、End では終了出来ない事もあります。きちんと全オブジェクト(フォームを含む)を破棄すれば終了出来ますが。
| ||||||||||||
|
投稿日時: 2007-04-05 15:25
ループ中はあった方が良い場合もあります。(Excel のオブジェクトたちなど) よく見かけるのが、プロシージャの最後にまとめて Nothing というパターンです。 これこそ本当に意味ないですよね。 -- 以下は完全な脱線話です。
私もその 1 被害者でした。 むしろ 「Close よりか Nothing で解放する方が大事」 だと言われました。 それは、大きな間違いです。 (どうも、その人は参照の解放を 「リソースの破棄」 だと勘違いしているみたいです) 参照が解放された時に Close されているのは、たまたまライブラリが デストラクタで (| 参照カウントが完全にデクリメントされた時に) 後始末をしているからです。 # と反論してもわかってもらえないのは 「定説」 です。
一応、使わせないようにすることはできますので、そのように対応する予定です。 # 次期 VB (というか、Visual Studio) では、オプションを設けてくれる予定です。 # Visual Studio 2005 発売前にも Wish したのですが、間に合いませんでした... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
«前のページへ
1|2|3|4