C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.91572 の関連記事表示

<< 0 >>
■91572  Re[18]: メモリリークに関して
□投稿者/ kiku -(2019/07/09(Tue) 10:26:26)
    No91571 (魔界の仮面弁士 さん) に返信
    >>foreach (var c in Controls)
    >>{
    >> Logger.Info(c.GetType().ToString());
    >> switch (c.GetType().FullName)
    >> {
    >> case "System.Windows.Forms.Label":
    >> ((System.Windows.Forms.Label)c).Font.Dispose();
    >> ((System.Windows.Forms.Label)c).Dispose();
    >
    > 型ではなく型名でチェックしている点が気になりますが、それはさておき。

    switch (c.GetType())
    {
    case typeof(System.Windows.Forms.Label):
    ((System.Windows.Forms.Label)c).Font.Dispose();
    ((System.Windows.Forms.Label)c).Dispose();

    こんな感じにしてみたのですが、ビルドできなかったので、
    if文の羅列になってしまいます。
    好みの問題なのですが、switch文の方が見た目がきれいなので
    こちらにしてみました。
    swich文でも書き方によってうまくできればよいのですが。

    > Form 上に Panel や TabControl 等を使用していた場合、this.Controls だけではなく
    > その配下のコントロールも再帰的に処理する必要があるのではないでしょうか。
    > (this.Controls[0].Controls 的な意味で)

    今回のアプリでは全画面にどんなコントロールが利用されているのかを
    把握しています。
    コンテナとなるようなコントロールは無いことを確認しているため、
    実装していません。

    > マネージリソースを破棄するのは、disposing == true の時だけなのでは?

    確かにそうですね。
    コメントありがとうございます。
    対応させて頂きます。
記事No.91509 のレス / END /過去ログ158より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -