■36563 / inTopicNo.1) |
PictureBoxのImageプロパティの割当について |
□投稿者/ たに (13回)-(2009/06/01(Mon) 18:57:40)
|
分類:[C#]
お世話になります。他所様のサンプルソースなのですが、
質問させて下さい。
(引用元:http://www.apfield.jp/csgarden/picturebox.html#picturebox7)
-------------------------------
1:FileStream sr = new FileStream("画像の所在を示すフルパス", FileMode.Open,FileAccess.Read);
2:Bitmap bmp = (Bitmap)System.Drawing.Bitmap.FromStream(sr); //Bitmapクラスオブジェクトへ読込み
3:sr.Close(); //ストリームを閉じる
4:pictureBox1.Image=new Bitmap(bmp); //ピクチャーボックスの画像イメージをBitmapオブジェクトから創成
5:bmp.Dispose(); //Bitmapオブジェクトの廃棄
--------------------------------
(行番号を付加しました。)
質問1.
--------
PictureBoxにイメージを表示させるためのソース部分ですが、
4行目で「pictureBox1.Image=bmp」としないのは何を意図した
ものなのでしょうか?
上記ソースはもちろん動作しますが「pictureBox1.Image=bmp」として
5行目をコメントアウトしても動作しています。
また、仮に「pictureBox1.Image=bmp」とした場合は
必ずどこかで(例えばForm_Closing()とか)でDispose()しなければ
ならないのでしょうか?
内部的な動きとして違いがわかりません。
--------
質問2.
-------
1行目のFileStreamは3行目でClose()を行っていますが、
FileStreamそのものはDispose()していませんが、これは
これで問題ないのでしょうか?
基本的にC#ではどこからも参照されなくなったオブジェクトは
自動的に破棄されると思いますが、それでもnewしたオブジェクトは
使い終わったらDispose()しておけばとりあえず問題ないと言う
認識で間違ってませんか?
(Dispose()に関しては結構色々な場所で議論されてはいますが、
GCとかの話が絡むとお恥ずかしい話、全く理解が出来ていません(--;)
どなたか回答頂けると幸いです。
宜しくお願い致します。
|
|