C# LanguageConstructores y finalizadores


Introducción

Los constructores son métodos en una clase que se invocan cuando se crea una instancia de esa clase. Su principal responsabilidad es dejar el nuevo objeto en un estado útil y consistente.

Los destructores / finalizadores son métodos en una clase que se invocan cuando una instancia de eso se destruye. En C # rara vez se escriben / usan explícitamente.

Observaciones

C # en realidad no tiene destructores, sino finalizadores que usan la sintaxis del destructor de estilo C ++. Especificar un destructor anula el método Object.Finalize() que no se puede llamar directamente.

A diferencia de otros idiomas con una sintaxis similar, estos métodos no se llaman cuando los objetos están fuera del alcance, sino que se llaman cuando se ejecuta el recolector de basura, lo que ocurre bajo ciertas condiciones . Como tales, no están garantizados para funcionar en un orden particular.

Los finalizadores deben ser responsables de limpiar solo los recursos no administrados (los punteros adquiridos a través de la clase Marshal, recibidos a través de p / Invoke (llamadas al sistema) o los punteros sin procesar utilizados en bloques inseguros). Para limpiar los recursos administrados, revise IDisposable, el patrón de Disposición y la declaración de using .

(Lectura adicional: ¿ Cuándo debo crear un destructor? )

Constructores y finalizadores Ejemplos relacionados