Reemplazar el método Finalize

Un método Finalize actúa como medida de seguridad para limpiar los recursos en caso de que no se llame al método Dispose. Sólo debe implementar un método Finalize para limpiar recursos no administrados. No se debe implementar un método Finalize para objetos administrados, porque el recolector de elementos no utilizados limpia los recursos administrados automáticamente. De forma predeterminada, el método Object.Finalize no realiza ninguna acción. Si desea que el recolector de elementos no utilizados realice las operaciones de limpieza en el objeto antes de reclamar su memoria, debe reemplazar este método en su clase.

NotaNota

En los lenguajes de programación C# o C++ no se puede reemplazar el método Finalize.En C#, utilice la sintaxis del destructor para implementar el método Finalize.En la versión 2.0 de .NET Framework, C++ proporciona su propia sintaxis para implementar el método Finalize, como se describe en Destructors and Finalizers in Visual C++.En versiones anteriores, C++ utilizaba la sintaxis del destructor para el método Finalize, tal como hace C#.

El ámbito del método Object.Finalize está protegido. Mantenga este ámbito limitado cuando reemplace el método en su clase. Al mantener un método Finalize protegido, los usuarios de la aplicación no podrán llamar al método Finalize de un objeto directamente.

El método Finalize de un objeto debe liberar todos los recursos que contiene el objeto. También debe llamar al método Finalize de la clase base del objeto. El método Finalize de un objeto no debe llamar a un método de otros objetos que no sean de su clase base. El motivo es que los otros objetos a los que se llama podrían ser recolectados al mismo tiempo que el objeto que llama, por ejemplo, en el caso de un cierre de Common Language Runtime.

Si permite que escapen excepciones al método Finalize, el sistema asume que el método volvió y continúa llamando a los métodos Finalize de otros objetos.

Vea también

Referencia

Finalize

Conceptos

Implementar un método Dispose

Sintaxis de destructores en C# y C++

Controlar y generar excepciones

Otros recursos

Fundamentos del control de excepciones