C# la guia total del programador users

Page 104

PROGRAMACIÓN C#

objeto vecC queda aislada, es decir que se pierde toda referencia a ella. En un len­

guaje como C++ esto generaría un mcmory leak, y dicha zona de memoria quedaría reservada hasta que finalmente el programa terminara y el sistema operativo recu­ perara toda la memoria que estaba usando. En cambio, C#, gracias a su recolector de basura, advertirá esta situación y recupe­ rará dicha memoria para dejarla nuevamente disponible a nuestro programa. Pero ¿cuando ocurrirá estol En el lenguaje de programación C# no existe el operador contrario a new (como sí existe en C++, donde dicho operador se denomina delete). La destrucción de un ob­ jeto no es un proceso determinístico, es decir que no podremos controlar exacta­

mente el momento en el cual la memoria asignada en el hcap vuelve a ser memoria disponible para ser utilizada en otros objetos. Lo que sí podemos indicarle al sistema es cuándo un objeto deja de sernos útil. Pa­ ra esto bastará con pisar la referencia que teníamos de un objeto por el valor nuil: // Construimos el objeto Vector2 vecA = new Vector2(); // Hacemos uso del objeto //

...

/ / L e indicamos al sistema que ya no lo precisamos vecA e nuil;

A partir de ese momento, cuando el recolector de basura advierta esta situación, to­ mará cartas en el asunto. Pero el instante preciso en el que lo hará realmente queda fuera de nuestro alcance. El recolector de basura se asegura de que:

USO DE LA MEMORIA POR PARTE DE OBJETOS Cada objeto instanciado ocupará un tugar en memoria, esto ya lo dijimos. Sin embargo, cabe des­ tacar que un objeto no poseerá todos los datos en su porción de memoria: las constantes y las variables estáticas, por ejemplo, estarán ubicadas en un lugar único, relacionadas con su clase. Nótese que un objeto del tipo Foo poseerá una variable a totalmente independiente de las demás.

106

u s r .c o d e


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.