Foros del Web » Programando para Internet » ASPX (.net) »

Diferencia entre Dispouse y Nothing

Estas en el tema de Diferencia entre Dispouse y Nothing en el foro de ASPX (.net) en Foros del Web. ¿Que diferencia existe entre igualar un objeto a Nothing o invocar el método Dispose? Código: Ej.: dsDataSet.Dispose() dsDataSet = Nothing ¿Cuál de los dos libera ...
  #1 (permalink)  
Antiguo 01/06/2006, 15:12
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 1 mes
Puntos: 7
Diferencia entre Dispouse y Nothing

¿Que diferencia existe entre igualar un objeto a Nothing o invocar el método Dispose?
Código:
Ej.:
dsDataSet.Dispose()
dsDataSet = Nothing
¿Cuál de los dos libera realmente la memoria?

--
Saludos,
Joe Peña
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #2 (permalink)  
Antiguo 01/06/2006, 19:20
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Antes que nada, dale un vistazo a http://msdn.microsoft.com/library/de...netchapt05.asp

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 02/06/2006, 12:34
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 1 mes
Puntos: 7
Muy interesante, gracias por la información.
Ya se que Dispose si libera la memoria y que puedo invocar el gabage colector desde el namespace System.GC.

Además que no es necesario igualar las variables locales a nothing según el siguiente texto:
Cita:
Do not set local variables to null (C#) or Nothing (Visual Basic .NET) because the JIT compiler can statically determine that the variable is no longer referenced and there is no need to explicitly set it to null. The following code shows an example using local variables.
Código:
Sub func() 
 Dim str1 As String 
 str1 = "abc" 
 'Avoid this
 str1 = Nothing 
End Sub 
Pero me queda la siguiente duda. En el ejemplo utilizan una variable tipo string pero no un objeto como es, por ejemplo, un DataSet. ¿Aún me queda la duda si al yo igualar un objeto a Nothing se libera la memoria?
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #4 (permalink)  
Antiguo 02/06/2006, 14:01
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
La cita que pusiste claramente indica que no es necesario asignar a Nothing una variable local, porque al salir de contexto, ésta no tendrá más referencias y podrá ser recolectado por el GC. Asignar a nothing hace básicamente lo antes mencionado, es decir eliminar las referencias que existen a ese objeto.

saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:37.