Cómo funcionan los métodos New y Finalize en una jerarquía de clases
Actualización: noviembre 2007
Cuando se crea una instancia de una clase, Common Language Runtime (CLR) intenta ejecutar un procedimiento denominado New, si existe en ese objeto. New es un tipo de procedimiento llamado constructor que se utiliza para inicializar nuevos objetos antes de que se ejecute cualquier otro código de un objeto. Un constructor New puede utilizarse para abrir archivos, conectarse a bases de datos, inicializar variables y realizar cualquier otra tarea necesaria antes de poder utilizar un objeto.
Cuando se crea una instancia de una clase derivada, se ejecuta primero el constructor Sub New de la clase base, seguido de los constructores de las clases derivadas. Esto se debe a que la primera línea de código en un constructor Sub New utiliza la sintaxis MyBase.New() para llamar al constructor de la clase situada inmediatamente por encima en la jerarquía de clases. Después se llama al constructor Sub New para cada clase de la jerarquía hasta llegar al constructor de la clase base. En este punto, se ejecuta el código del constructor para la clase base, seguido del código en cada constructor de todas las clases derivadas, ejecutándose en último lugar el código de las clases más derivadas.
Cuando un objeto deja de ser necesario, CLR llama al método Finalize para ese objeto antes de liberar su memoria. El método Finalize se denomina destructor porque realiza tareas de limpieza, como guardar información de estado, cerrar archivos y conexiones a bases de datos, y otras tareas que deben realizarse antes de liberar el objeto.