首页 > 解决方案 > 方法是否列出.Remove() 从删除对象中调用 Dispose() 方法?

问题描述

我在集合列表中有几个对象。我需要知道从集合中删除对象时是否调用了 Dispose() 方法?如果没有,是否有办法在移除对象时调用它?

标签: c#

解决方案


您将必须创建自己的集合类来管理处置。实际上列表和集合与对象生命周期无关。

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();
    }
    
}

推荐阅读