代码之家  ›  专栏  ›  技术社区  ›  Matt Dillard

在vb6中,什么时候必须将变量设置为“无”?

  •  8
  • Matt Dillard  · 技术社区  · 17 年前

    在我的一个vb6表单中,我创建了几个其他表单对象,并将它们存储在成员变量中。

    Private m_frm1 as MyForm
    Private m_frm2 as MyForm
    
    // Later...
    Set m_frm1 = New MyForm
    Set m_frm2 = New MyForm
    

    我注意到每当这个(父)窗体被创建和销毁时,我都在泄漏内存。有必要把这些成员变量赋给 Nothing 在里面 Form_Unload() ?

    一般来说,什么时候需要?

    解决:当我执行 Unload 在有问题的窗体上,而不是当我将窗体设置为 没有什么 . 我通过将类模块的一些实例显式设置为 没有什么 也一样。

    8 回复  |  直到 17 年前
        1
  •  8
  •   Josh Miller    17 年前

    Private Sub Form_Load()
      Dim frm As Form2
      Set frm = New Form2
      frm.Show
      Set frm = Nothing
    End Sub
    

    Unload Forms(1)
    

        2
  •  8
  •   Konrad Rudolph    17 年前

    RAII Nothing Class_Terminate

        3
  •  4
  •   BZ.    17 年前

        4
  •  4
  •   Guillermo Phillips    17 年前

        5
  •  2
  •   Allain Lalonde    17 年前

        6
  •  2
  •   Martin Marconcini    17 年前

        7
  •  2
  •   Josh Miller    17 年前

    Dim y As Long
    For y = 0 To Forms.Count -1
        Unload Forms(x)
    Next
    

        8
  •  2
  •   to StackOverflow    17 年前