- 1 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 18:23:31 ]
- このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part45 (実質46) pc12.2ch.net/test/read.cgi/tech/1255658236/
- 933 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:27:34 ]
- >>906
スマンカッタ。確かにフィールド、ローカル変数共に初期化してても他で使ってなかったらワーニング出るな。 初期化してないときとワーニングの内容は変わるけど。 >可読性的には意味がある 意味がないことが多い。922の言うように未初期化参照のコンパイルエラーを出させるほうが素直なコード。 初期化コード自体がif文で分岐してるとかなら初期値を与えることはあるが、それは例外的な措置だよね。 >>923,925 844のBitmap、Graphicsインスタンスのnull初期化は不要だよな?
- 934 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:32:32 ]
- まあ初期化なくす前に明らかに宣言位置を変える方向だが。
宣言位置が適切なら、多くの場合その場で初期化が自然になるからね。 もちろん意味のない初期化はするべきではないけど、 上記を守れば基本的にそういうのはなくなるはず。
- 935 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:54:00 ]
- >>933
>844のBitmap、Graphicsインスタンスのnull初期化は不要だよな? 不要だがあったからといって悪い訳じゃない
- 936 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 14:05:32 ]
- チームの規約にしたがうレベル
戦ってまで守らなきゃいけない一線ではないわな どっちにしても
- 937 名前:デフォルトの名無しさん [2009/11/18(水) 14:14:32 ]
- >>935
>Bitmap、Graphicsインスタンスのnull初期化は不要だよな? インスタンスのnull初期化じゃなくて変数(ry
- 938 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 15:48:55 ]
- formAからform.showでformBを開いた後、不要になったformBを×ボタンで閉じます。
この時、formBのリソースは全て開放されますよね?。
- 939 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 15:52:19 ]
- ガベージコレクションの対象にならないと開放されないよ。
- 940 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 15:57:44 ]
- そのformという変数を保持している間は解放されないかな
- 941 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 16:17:16 ]
- 規定のインスタンスを使用している場合はアプリ終了まで保持されるというような話を聞いた。
(でもこれってたしかVB.NETの話だったような。C#では規定のインスタンスってあるんかな?)
- 942 名前:938 mailto:sage [2009/11/18(水) 16:27:33 ]
- そうなるとFormClosingでちゃんと処理してから終了させた方が良さそうですね
ありがとうございます
- 943 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 16:32:41 ]
- >>942
いあ、そういふ意味ではないんだが。 Form_Closingイベントとメモリ開放は別話。
- 944 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 16:43:17 ]
- >>942
モーダルダイアログならFormAで次のようにFormBを表示し using(Form formB = new FormB()) { formB.ShowDialog(this); } formBフォームの中で使ってるリソースはFormBのDisposeをオーバーライドして行う
|

|