C# List的Remove方法是否处理对象元素?

C# List的Remove方法是否处理对象元素?,c#,C#,我想知道List dispose(destruct)元素的Remove()方法是否正确 在我的代码中,我有一个列表类型的计时器 List<Timer> timerlist; Timer t = new Timer(); t.Tag = ApptNo.ToString(); t.Interval = ApptInterval * 1000; t.Tick += tm_Tick; timerlist.Add(t); t.Enabled = true; t.Start(); for

我想知道List dispose(destruct)元素的Remove()方法是否正确

在我的代码中,我有一个列表类型的计时器

List<Timer> timerlist;


Timer t = new Timer();
t.Tag = ApptNo.ToString();
t.Interval = ApptInterval * 1000;
t.Tick += tm_Tick;
timerlist.Add(t);
t.Enabled = true;
t.Start();


foreach (Timer t in timerlist)
{
    if (string.Equals(t.Tag, ApptNo.ToString()))
    {
        t.Stop();
        timerlist.Remove(t);
        break;
    }
}
List timerlist;
定时器t=新定时器();
t、 Tag=ApptNo.ToString();
t、 间隔=ApptInterval*1000;
t、 Tick+=tm_Tick;
timerlist.Add(t);
t、 启用=真;
t、 Start();
foreach(计时器列表中的计时器t)
{
if(string.Equals(t.Tag,ApptNo.ToString()))
{
t、 停止();
timerlist.Remove(t);
打破
}
}
我的问题是,我应该手动还是从timerlist.Remove(t)自动处理timer对象t。
如果应该调用t.Dispose(),我应该在哪里调用它?

否,从列表中删除并不会处理任何东西-因为在一般情况下,仅仅在列表中并不意味着终身所有权;一个对象可以位于多个列表(或无)中,也可以位于多个对象(或无)上的字段中,也可以位于多个局部变量(或无)中,因此列表不能假定删除意味着该对象注定失败

所以:当您确定对象的生命周期结束时,请自己执行此操作。在这种情况下,大概就在您中断之前


请注意,在无法从任何地方访问的点之后的某个时间,它仍然会被垃圾收集,但通常您应该确保自己处理
IDisposable
类型,尤其是计时器(因为计时器基本上是“根”)。

不,它不会处理-您必须自己处理,大概就在中断之前可能的重复或感谢善意和详细的回答。我可以从你的回答中找到答案