Вызывает ли метод List <T>.Remove () метод Dispose () из удаляемого объекта? - PullRequest
0 голосов
/ 02 августа 2020

У меня несколько объектов в коллекции List. Мне нужно знать, вызывается ли метод Dispose () при удалении объектов из коллекции? Если нет, есть ли способ вызвать его при удалении объектов?

1 Ответ

4 голосов
/ 02 августа 2020

Вам нужно будет создать свой собственный класс коллекции, который будет управлять удалением. Фактический список и коллекция не имеют ничего общего с временем жизни объекта.

public class AutoDisposeList<T> : IList<T> where T : IDisposable
{
    public void Add(T item)
    {
         base.Add(item);
    }
    
    public void RemoveAndDispose(T item)
    {
        base.Remove(item);
        item.Dispose();
    }
    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...