{"id":38112,"date":"2024-07-12T06:53:49","date_gmt":"2024-07-12T04:53:49","guid":{"rendered":"https:\/\/www.techopedia.com\/es\/?post_type=definition&p=38112"},"modified":"2024-07-12T10:03:44","modified_gmt":"2024-07-12T08:03:44","slug":"finalizar","status":"publish","type":"definition","link":"https:\/\/www.techopedia.com\/es\/definicion\/finalizar","title":{"rendered":"Finalizar"},"content":{"rendered":"
Finalizar es un m\u00e9todo de objeto que contiene el c\u00f3digo necesario para liberar recursos no gestionados y realizar operaciones de limpieza antes de la recogida de basura (GC).<\/p>\n
El m\u00e9todo finalizar se utiliza para limpiar recursos no gestionados por .NET<\/strong>. Aunque el marco .NET est\u00e1 dise\u00f1ado para liberar recursos gestionados realizando impl\u00edcitamente tareas de gesti\u00f3n de memoria, los recursos no gestionados de la aplicaci\u00f3n -como los manejadores de archivos y las conexiones a bases de datos<\/a>– deben liberarse expl\u00edcitamente.<\/p>\n Mientras que finalizar est\u00e1 dise\u00f1ado para ser llamado impl\u00edcitamente por GC, el m\u00e9todo dispose puede ser llamado expl\u00edcitamente por el c\u00f3digo de usuario para liberar recursos.<\/p>\n Finalizar es similar a los destructores tradicionales de C++, ya que cada uno es responsable de liberar los recursos del objeto. Los destructores C++ se ejecutan inmediatamente cuando un objeto sale del \u00e1mbito, mientras que finalizar se llama durante la limpieza del objeto en GC.<\/strong><\/p>\n En C#, finalizar no puede invocarse directamente ni anularse. Si se declara un destructor, se convierte en el m\u00e9todo finalizar cuando se compila el programa.<\/p>\n Durante la finalizaci\u00f3n, debe evitarse la asignaci\u00f3n de memoria o la llamada a m\u00e9todos virtuales<\/strong>. El \u00e1mbito de finalize debe estar protegido para que s\u00f3lo se pueda acceder a \u00e9l dentro de la misma clase o de su clase derivada.<\/p>\n Finalizar no debe hacer referencia a ning\u00fan otro objeto. En C#, llamar a finalizar directamente a un objeto que no sea su clase base es una operaci\u00f3n inv\u00e1lida. El c\u00f3digo de finalizaci\u00f3n debe ser m\u00ednimo, sin llamadas capaces de bloquear el subproceso de llamada.<\/p>\n Como la llamada a finalizar la realiza un subproceso dedicado, su c\u00f3digo no debe utilizar almacenamiento local de subprocesos ni ninguna t\u00e9cnica que requiera afinidad de subprocesos.<\/p>\n Es esencial utilizar finalizar como mecanismo alternativo para liberar memoria<\/strong> o recursos no gestionados, debido a la falta de determinismo y a los efectos sobre el rendimiento de la GC.<\/p>\n","protected":false},"excerpt":{"rendered":" \u00bfQu\u00e9 significa finalizar? Finalizar es un m\u00e9todo de objeto que contiene el c\u00f3digo necesario para liberar recursos no gestionados y realizar operaciones de limpieza antes de la recogida de basura (GC). El m\u00e9todo finalizar se utiliza para limpiar recursos no gestionados por .NET. Aunque el marco .NET est\u00e1 dise\u00f1ado para liberar recursos gestionados realizando impl\u00edcitamente […]<\/p>\n","protected":false},"author":7813,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"definitioncat":[888],"class_list":["post-38112","definition","type-definition","status-publish","format-standard","hentry","definitioncat-desarrollo-de-software"],"acf":[],"yoast_head":"\nDefinici\u00f3n de finalizar<\/span><\/h2>\n