Hola a todos.
Resumiendo mucho, tengo unas clases que esquemáticamente quedan así:
class ClaseA
{
// Metodos y variables
}
class ClaseB
{
// Necesito compartir el objeto entre muchos métodos de la ClaseB.
private ClaseA m_objeto;
private void Metodo1()
{
// Cada vez que se llama a este método se crea un nuevo objeto de la ClaseA
m_objeto = new ClaseA();
m_objeto.SeEjecutanMetodosDelObjeto();
}
private void Metodo2()
{
// Se llaman a varios metodos de la ClaseA.
m_objeto.SeEjecutanMetodosDelObjeto();
m_objeto.SeEjecutanMetodosDelObjeto();
m_objeto.SeEjecutanMetodosDelObjeto();
}
private void MetodoPrincipal()
{
Metodo1();
Metodo2();
// Entre llamada y llamada al Metodo1, ¿debo borrar m_objeto?
Metodo1();
Metodo2();
// ¿Borrar m_objeto, lo hace el recolector automaticamente o estoy
perdiendo la memoria?
Metodo1();
Metodo2();
}
}
La duda esta en que no sé si el objeto que comparto entre muchos métodos de
la ClaseB lo tengo que borrar o limpiar de alguna forma porque no sé si
estoy perdiendo memoria sin hacer nada entre las llamadas al Metodo1 y la
creación de un nuevo objeto de ClaseA que se hace en el Metodo1.
Espero que quede clara la pregunta.
Gracias por anticipado.
Tomás.