下面的最小程序给出一个CA2202警告:在方法PList.GetEnumerator()
中,对象Module1.Main()
可以被多次处置。 [这是从警告消息中剪切并粘贴的] /
如果将“列表”内容更改为“整数”,则警告消失。如果取出周围的Do循环,它也会消失。
我正在Windows 7上使用Visual Studio Community 2017。
Module Module1
Sub Main()
Dim KVP As KeyValuePair(Of Integer, List(Of Object))
Dim PList As New SortedList(Of Integer, List(Of Object))
Do While True
For Each KVP In PList
Next KVP
Loop
End Sub
End Module
我总是可以忽略该警告,但是我对为什么这样一个简单的程序可以产生警告很感兴趣。这里有什么想法的专家吗?
答案 0 :(得分:0)
正如@TnTimMn所指出的,这是一个虚拟副本。该警告似乎是错误的肯定。谢谢大家的宝贵意见。