codice:
Dim MyData As New DataTable("HH")
Try
MyData.Columns.Add("1")
'..................
' decine di righe di codice ininfluenti per la mia domanda
If Commands.Count <> OldCommands.Count Then
Return True
Else
Return False
End If
Catch ex As Exception
Debug.Print(ex.ToString)
Return False
Finally
MyData.Dispose()
End Try
Se analizzo in codice ottengo:
Avviso 31 CA2000 : Microsoft.Reliability : Nel metodo 'Module1.GetData()' chiamare System.IDisposable.Dispose sull'oggetto 'MyData' prima che tutti i relativi riferimenti siano esterni all'ambito....
Ma, scusate, un blocco Finally non viene eseguito comunque?
Se aggiungo un "MyData.Dispose()" prima del blocco Catch il messaggio non cambia.
Se lo tolgo da prima del catch e lo aggiungo DOPO l' End Try mi dice che può essere eliminato più volte... ma lol.