我需要将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();
}
}