none
インスタンスの解放について RRS feed

  • 質問

  • VB2005で開発しています。
    インスタンスの解放について、
    私の認識で間違っていないか確認させて下さい。
    以下のURLやヘルプを読んだのですが、少し難しい部分もあり確認させて頂きたいのです。
    http://www.microsoft.com/japan/msdn/community/gdn/ShowPost-4718.htm
    http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=3109324&SiteID=7

     

    -------------------------------------------------
    .NET Framework標準のクラスであれば、
    ガベージコレクションの機能があるため、Nothingしなくて良い。
    (参照の追加で.NETタブのコンポーネントを指しています。)
    ただしDisposeメソッドやCloseメソッドが存在するクラスの場合は
    明示的に開放する。

     

    参照の追加でCOMタブにあるコンポーネントのクラスであれば、
    特別な解放処理が必要。

     

    独自のクラスを作成した場合は、
    そのクラスで使用しているクラスにDisposeメソッドやCloseメソッドが存在する場合は
    解放処理が必要であるが、当該メソッドが存在しなければ、解放処理は不要。
    -------------------------------------------------

     

    以上のように認識しているのですが、
    私の認識で間違いないのでしょうか?

     

    今までこのようにプログラムしておりましたが、
    これでメモリリークが発生していないか不安に思いましたので、
    質問させて頂きました。

    もしよろしければ、
    ご回答よろしくお願いいたします。

    2008年9月11日 10:52

回答

  • 基本的にいいと思いますよ。.NET Frameworkの範囲であれば自動的にメモリ管理されますが、その範疇を超えたWindowsに依存する資源などは自分で解放してあげなければなりません。

    2008年9月11日 11:44
    モデレータ

すべての返信

  • 基本的にいいと思いますよ。.NET Frameworkの範囲であれば自動的にメモリ管理されますが、その範疇を超えたWindowsに依存する資源などは自分で解放してあげなければなりません。

    2008年9月11日 11:44
    モデレータ
  • 基本的にいい、とのことで良かったです。
    知識に曖昧な部分があり、
    とても不安に思っておりましたので、すっきりしました。
    ご回答ありがとうございました。

     

    2008年9月12日 2:18