List<T>.Remove() 方法是否从删除对象中调用 Dispose() 方法?

Yur*_*kyi 1 c#

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

小智 5

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

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();
    }
    
}
Run Code Online (Sandbox Code Playgroud)