Nuevos objetos como parámetros... y posterior liberación...

26/02/2006 - 17:41 por Sergio | Informe spam
Hola:

Si para un método que necesita recibir un parámetro de tipo
FileStream, escribo algo así:

método(New FileStream("C:\Archivo.txt", IO.FileMode.OpenOrCreate))

¿Se liberaría después de el objeto FileStream? Es decir, imagino que
sería más adecuado hacer algo así:

Dim a As New FileStream("C:\Archivo.txt", IO.FileMode.OpenOrCreate)
método(a)
a.Close
a.Dispose

Ya se que cuando llegue el recolector de basura liberará los objetos
no referenciados, pero, por norma y para hacerlo extensible a cualquier
ejemplo similar al anterior

¿Qué es más optimo y adecuado, el ejemplo 1 o el 2?
¿Vosotros como lo haceís?

Gracias y un saludo.
 

Leer las respuestas

#1 Jorge Serrano [MVP VB]
26/02/2006 - 18:17 | Informe spam
Hola Sergio,

yo siempre acostumbro a cerrar los objetos.

El recolector de basura mirará los objetos referenciados y liberados y se
encargará de limpiarlos de la memoria sino se utilizan en un periodo de
tiempo.

A mí me gusta siempre abrir el objeto y cerrarlo si se que no lo voy a
utilizar o que casi seguro que no lo voy a usar más.

Pero sobre gustos...

Un saludo.

Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Weblog de Jorge Serrano
http://weblogs.golemproject.com/jorge/


"Sergio" wrote:

Hola:

Si para un método que necesita recibir un parámetro de tipo
FileStream, escribo algo así:

método(New FileStream("C:\Archivo.txt", IO.FileMode.OpenOrCreate))

¿Se liberaría después de el objeto FileStream? Es decir, imagino que
sería más adecuado hacer algo así:

Dim a As New FileStream("C:\Archivo.txt", IO.FileMode.OpenOrCreate)
método(a)
a.Close
a.Dispose

Ya se que cuando llegue el recolector de basura liberará los objetos
no referenciados, pero, por norma y para hacerlo extensible a cualquier
ejemplo similar al anterior

¿Qué es más optimo y adecuado, el ejemplo 1 o el 2?
¿Vosotros como lo haceís?

Gracias y un saludo.


Preguntas similares