【发布时间】:2011-11-17 16:28:33
【问题描述】:
我是否需要将 MyAction 设置为 null 以便垃圾收集能够继续处理这些类中的任何一个?
当两个班级的寿命几乎相同时,我不太担心。当 Class1 的寿命比 Class2 长得多或 Class2 的寿命比 Class1 长得多时,我的问题更合适。
这里的代码被精简了。假设 Class1 和 Class2 都包含可能影响其生命周期的其他成员和方法。
public class Class1 : IDisposable
{
public Action<string> MyAction { get; set; }
// Is this necessary?
public void Dispose()
{
MyAction = null;
}
}
public class Class2
{
string _result = string.Empty;
public void DoSomething()
{
Class1 myClass1 = new Class1();
myClass1.MyAction = s => _result = s;
myClass1.Dispose();
}
}
【问题讨论】:
标签: c# garbage-collection closures