Re: Consulta POO
"Alexis Araya" <[email protected]>
| Newsgroups | gmane.comp.gnome.mono.hispano |
|---|---|
| Message-ID | <[email protected]> |
Entonces la Implementacion correcta de las clases con su destructor seria de
la sgte forma??
/************************************************************************************/
public class Class1()
{
}
public class Clase2: IDisposable
{
private bool IsDisposed = false;
Class1 clasePrueba = new Class1();
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposedStatus)
{
if (!IsDisposed)
{
IsDisposed = true;
if (disposedStatus)
{
}
}
}
}
/************************************************************************************/
2008/3/25, Daniel Soto <[email protected]>:
>
> Hola.
>
> Cuando destruyes la referencia a class2, tambien class1 queda sin
> referenciar. No es necesario que implementes un destructor para class1. Hay
> que tener en cuenta eso si que no puedes llamar al destructor directamente,
> .net lo hace cuando destruyes el objeto. Tambien tener en cuenta que el
> objeto sigue ocupando memoria aunque le hagas un objeto=null, el garbage
> collector se encarga de limpiar la memoria cuando el heap se esta quedando
> sin espacio o bien cuando lo invocas explicitamente con System.GC.Collect().
> Esto solo ocurre cuando no queda ninguna referencia hacia class1 y class2.
>
> Otra cosa, es que si implementas un destructor para cualquiera de tus
> clases, el garbage collector realmente liberara su memoria la subsiguiente
> vez que se invoque. No asi si no implementas un destructor, en este caso se
> libera la siguiente vez.
>
> Implementa un destructor solo cuando creas que es necesario hacerlo.
>
> Espero haberte ayudado, saludos.
>
>
> El día 25/03/08, Alexis Araya <[email protected]> escribió:
> >
> > Hola,
> >
> > tengo una consulta sobre la implementacion de Dispose en un clase.
> >
> > mira tengo 2 clases
> > una es instanciada en la otra..
> >
> > ejemplo
> >
> > public class1()
> > {
> >
> > }
> >
> > public class2()
> > {
> > class1 prueba1 = new class1();
> > }
> >
> >
> > cuando genere el destructor(dispose) de la class2,
> > debo tambien llamar e implementar al destructor de la class1???
> >
> > o lo asume y destruye todo lo instanciado de ese objecto??
> >
> > gracias de ante mano master.
> >
> > Saludos.
> >
> > --
> > Alexis Araya S.
> > http://aarayas.blogspot.com
> > /* La Amistad se Pierde, Cuando la Envidia Crece */
> > _______________________________________________
> > Mono-hispano mailing list
> > [email protected]
> > https://listas.hispalinux.es/mailman/listinfo/mono-hispano
> >
>
>
--
Alexis Araya S.
http://aarayas.blogspot.com
/* La Amistad se Pierde, Cuando la Envidia Crece */
_______________________________________________
Mono-hispano mailing list
[email protected]
https://listas.hispalinux.es/mailman/listinfo/mono-hispano