Vida útil de los objetos en una colección en VB.Net
Estoy tratando de averiguar la vida útil de tmpTabPages en el siguiente bit de código. Supongamos que el formulario tiene un TabControl vacío llamado MyTabControl, que hay una colección de cadenas llamada NameCollection.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For Each itm In NameCollection
Dim tmpTabPage as New TabPage(itm.toString)
'Add Controls to tmpTabPage
MyTabControl.TabPages.Add(tmpTabPage)
Next
End Sub
Dado que el alcance de tmpTabPage es el bloque For / Next, por lo general, su vida útil sería hasta el final del bloque, ¿verdad? Pero dado que se agrega a una colección que tiene un alcance fuera del bloque, ¿obtiene la misma vida útil que la colección, o en este caso MyTabControl? Finalmente, si llamo a MyTabControl.TabPages.Clear, ¿se destruirán las tmpTabPages de la colección o simplemente se quedarán sentadas ocupando memoria?