Metodos y propiedades Estaticas

22/11/2007 - 21:10 por Edilberto Arteaga Lopez | Informe spam
Hola a Todos,
Tengo una clase con metodos y propiedades estaticas, pero tengo una duda, al
ser estaticas no hago una referencia de ellas para utilizarlas, pero como me
aseguro que no queden en memoria cuando dejo de utilizarla.
Tengo que destruirla de alguna forma o el .Netframework los hace de alguna
forma

Saludos.

________________________________
Edilberto Arteaga Lopez
El Progreso Yoro, Honduras

Lo que hacemos en la vida, tiene su eco en la eternidad
 

Leer las respuestas

#1 Alberto Poblacion
23/11/2007 - 08:03 | Informe spam
"Edilberto Arteaga Lopez" wrote in message
news:
Tengo una clase con metodos y propiedades estaticas, pero tengo una duda,
al ser estaticas no hago una referencia de ellas para utilizarlas, pero
como me aseguro que no queden en memoria cuando dejo de utilizarla.
Tengo que destruirla de alguna forma o el .Netframework los hace de alguna
forma



Los métodos y propiedades solo son código ejecutable, y por lo tanto
nunca se crean ni se destruyen, siempre están en memoria (supuesto que el
JIT ya haya pasado por ellos), tanto si son estáticos como si son de
instancia. Creo que a lo que te refieres es a los CAMPOS (variables de
clase) estáticos. Cuando son estáticos, lo que ocurre es que existe una
única copia en memoria, que siempre está presente desde que inicias el
programa hasta que lo cierras. Por lo tanto, ni los puedes destruir de
ninguna forma ni el Framework los destruye tampoco.

Lo anterior se refiere al propio campo en sí, pero si usas un campo
estático que sea de tipo Referencia, el objeto al que se refiere sí que se
crea cuando le haces el new, y el Framework lo destruye cuando rueda el
Garbage Collector y el objeto es inalcanzable. En lo de "ser inalcanzable"
está la clave: las Referencias que son variables locales desaparecen cuando
se salen de alcance (la ejecución abandona el area en que fue definida la
variable local) y por tanto el objeto al que se refería la variable local se
convierte en inalcanzable y puede ser destruido. En cambio, los campos
estáticos nunca se destruyen, por lo que el objeto al que se refieren nunca
es inalcanzable y por tanto no se destruye. Aquí es donde tienes que
intervenir si relmente quieres destruirlo. Para convertirlo en inalcanzable,
lo que tienes que hacer el eliminar la referencia a ese objeto que existía
dentro de la variable estática. Y eso se consigue poniendo variable=null;.

Preguntas similares