- - PR -
Form.Closeメソッドによる破棄とは?
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-06 20:42
ごめん。渋木さん。 インスタンスの話ってどれのこと? | ||||||||
|
投稿日時: 2006-07-07 00:30
あ、ごめんなさい Me.Close() が良いか悪いかのつもりで書いてましたが、意味が通じないですね (^^;;;; Me.Close() 云々は置いておいて、リザルトをセットするべきかどうかだけについてコメントしたつもりでした>自分 | ||||||||
|
投稿日時: 2006-07-07 19:22
失礼しました。Form.ShowDialog と Form.Show で、Form.Close の動作が変わるのでした。(「動作が変わる」という言い方が良いか悪いかは?) Form.Show → Form.Close の中で、Dispose も行われる。 From.ShowDialog → Form.Close では Dispose されない。なので、呼び出し側が Dispose する必要がある。
はい。その当たり前が出来ていない場合が多いのでは?という懸念です。 # 自分のコードを把握していてたら、ここの質問の 1/3 はされていない、と思う。 # そのうち 1/10 くらいは、他所からコピーしてきたコードじゃないかな? # あ、自分で書いていないから把握する必要はない??? | ||||||||
|
投稿日時: 2006-07-07 19:53
割愛したのってDisposeがらみのことかな? ちょっとこのあたりは僕もいろいろと詳しく知りたくってね・・ | ||||||||
|
投稿日時: 2006-07-08 00:49
です。
IDisposable に課せられた原則と、個々のクラス実装における IDisiposable.Dispose(), Dispose() の実装(動作)を区別して考えるようにすれば、混乱は避けられると思います。 | ||||||||
|
投稿日時: 2006-07-08 11:23
ありがとう。このあたりだけ確認したかった。 別の意味を含んでいるのかなと思って。 | ||||||||
|
投稿日時: 2006-07-12 18:50
objectです。
気になったので、一言だけ。 >まどかさん >個人的には、Form自身でMe.Closeとすることは違和感があるので使用せず >Form.DialogResultを設定して、呼び出し元でCloseとDisposeを呼び出すようにしています。 仰られている事は、理解します。 確かに、「自ら命を絶つ」様ですから。 #表現に問題があれば、許して下さい。<(_ _)> しかし、「継承或いは実装」を眺めて頂ければ理解出来る様に、 Close() は、「Form」に対して特別に実装されている考えられます。 また、 Dispose() は、 Close() を通して WmClose() の中で呼ばれています。 結論として、私は Close()は、Form自身でMe.Close() と処理する事を意図して基本的には設計されている。 と考えています。 #これは、VCLを踏まえた私の見解でもあります。 | ||||||||
|
投稿日時: 2006-07-12 19:04
うーん。そんなことはないと思うけどなぁ。 ShowDialogの時の都合っていう目で見るとそうかもしれないけど・・・ 個人的な見解にけちつけること自体が間違ってるけど。 これも個人的な見解です。 |