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?

Respuestas a la pregunta(4)

Su respuesta a la pregunta