1

我正在尝试根据 Microsoft 代码分析 (CA:XXXXX) 修复我的所有项目警告

警告之一是“CA2000:在失去范围之前处置对象”

我的代码是:

Private sub Foo()
   Dim O As New Form1()
   O.Show()
End Sub

Visual Studio 说对象 O 不是一次性的,在这种情况下我不能使用关键字 USING 因为我会在之后丢失对象 O End Using

Private sub Foo()
   Using O As New Form1()
      O.Show()  'The form will open then close !!!
   End Using
End Sub

然后表格将打开和关闭

这种情况下如何用CA2000搭车,不用理会,我要解决和修复。

谢谢。

4

2 回答 2

1

我不需要忽略,我要解决和修复。

在这种特定情况下,这实际上是一个错误的警告。在这种特定情况下,您不想“解决和修复”此消息,因为您希望对象“存活”在本地范围的末尾之外。

如果您Dispose在该范围内调用对象,您将(总是)关闭表单,在这种情况下。

于 2012-05-18T18:50:16.397 回答
0

怎么样ShowDialog

Private sub Foo()
   Using O As New Form1()
      O.ShowDialog()
   End Using
End Sub

它将Form1在 i 关闭后处理所有资源。

于 2012-05-23T06:23:20.347 回答