¿ clear() borra también los objetos de una lista?
Publicado por Fernando (1 intervención) el 23/02/2008 16:23:23
Hola a todos,
pongamos que tengo una clase llamada A en la que implemento la interfaz IDisposable para cuando toque realizar la limpieza de los objetos creados de ese tipo.
Luego tengo una clase B que también implementa la misma interfaz y que contiene una lista de objetos de la clase A 'List<A>. Cuando se ejecute el método Dispose() de la clase B, quiero eliminar la lista de objetos de tipo A. La pregunta es la siguiente:
Teniendo en cuenta que una lista lo que guarda son referencias a los objetos.
¿El método Clear() de la lista borra únicamente estas referencias? ¿ Elimina de la memoria además los objetos a los cuales apuntan esas referencias?
Si solo borra las referencias, la opción que he pensado es meter la lista en un bucle y recorrerla llamando al método Dispose() de cada objeto de clase A que contenga, luego invocar a Clear() para eliminar las referencias de la lista y posteriormente asignarle null.
He mirado en la msdn la información disponible sobre Clear() pero no deja claro si elimina referencias o referencias+objetos apuntados porque habla en todo momento de 'items'.
Gracias
pongamos que tengo una clase llamada A en la que implemento la interfaz IDisposable para cuando toque realizar la limpieza de los objetos creados de ese tipo.
Luego tengo una clase B que también implementa la misma interfaz y que contiene una lista de objetos de la clase A 'List<A>. Cuando se ejecute el método Dispose() de la clase B, quiero eliminar la lista de objetos de tipo A. La pregunta es la siguiente:
Teniendo en cuenta que una lista lo que guarda son referencias a los objetos.
¿El método Clear() de la lista borra únicamente estas referencias? ¿ Elimina de la memoria además los objetos a los cuales apuntan esas referencias?
Si solo borra las referencias, la opción que he pensado es meter la lista en un bucle y recorrerla llamando al método Dispose() de cada objeto de clase A que contenga, luego invocar a Clear() para eliminar las referencias de la lista y posteriormente asignarle null.
He mirado en la msdn la información disponible sobre Clear() pero no deja claro si elimina referencias o referencias+objetos apuntados porque habla en todo momento de 'items'.
Gracias
Valora esta pregunta


0