我正在尝试根据Microsoft代码分析(CA:XXXXX)修复我的所有项目警告
其中一个警告是“CA2000:在丢失范围之前处置对象”
我的代码是:
Private sub Foo()
Dim O As New Form1()
O.Show()
End Sub
Visual Studio说对象O不是一次性的,在这种情况下我不能使用关键字USING,因为我会在End Using
之后丢失对象O:
Private sub Foo()
Using O As New Form1()
O.Show() 'The form will open then close !!!
End Using
End Sub
然后表格会打开和关闭
如何在这种情况下搭乘CA2000,我不需要忽视,我想解决并修复。
感谢。
答案 0 :(得分:1)
我不需要忽略,我想解决并修复。
在这个特定情况下,这实际上是一个虚假警告。在这种特定情况下,您不希望“解决并修复”此消息,因为您希望对象“超出”本地范围的末尾“活动”。
如果您在该范围内的对象上调用Dispose
,您将(始终)关闭该表单,在这种情况下。
答案 1 :(得分:0)
ShowDialog
怎么样?
Private sub Foo()
Using O As New Form1()
O.ShowDialog()
End Using
End Sub
我将在关闭后处置Form1
的所有资源。