新表单"is never disposed"消息



我最近搬到了Visual Studio 2019 V16.2,现在每当我在Windows表单应用程序中移动表单时,它都向我展示了一个新的"消息"。

IDE0067 Disposable object created by 'New FindFile' is never disposed

我一直在项目中使用代码片段中的"下一个"表单,例如:

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    Dim frmFindFile As New FindFile
    frmFindFile.Show()
    Me.Close()
End Sub

我在做什么错?一旦显示新的变量,我应该处置表单变量吗?下面摆脱了警告,但我的第二种形式从未显示!

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    Dim frmFindFile As New FindFile
    frmFindFile.Show()
    Me.Close()
    frmFindFile.Dispose()
End Sub

vb.net具有表单的默认实例,因此,如果您只使用FindFile.Show(),则不会发出警告。

有关更多信息,请参阅答案,为什么在vb.net中有每个表格的默认实例,而在c#?

中不存在默认实例

我还没有看到这个问题的正确答案,但是有一个。

上面列出的原始代码是:

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    Dim frmFindFile As New FindFile
    frmFindFile.Show()
    Me.Close()
End Sub

然而,正确的方法是:

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    Using frmFindFile As FindFile = New FindFile()
        frmFindFile.Show()
    End Using
    Me.Close()
End Sub

这将自动处理需要处置的使用结构中的任何东西。

几乎所有可以使用dim/as类结构进行实例化的东西都可以放置在使用结构中。

另一个示例是使用StreamReader/Writer。将其与使用实例化,然后不用使用instance.close((,只需使用end用来将其关闭并处置它。

相关内容

  • 没有找到相关文章

最新更新