Нужно ли устанавливать MyAction в значение null, чтобы сбор мусора мог работать с любым из этих классов?
Я менее обеспокоен тем, что оба класса должны иметь почти одну и ту же продолжительность жизни. Мой вопрос более подходит, когда срок службы Class1s намного длиннее Class2 или когда срок службы Class2s намного длиннее 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();
}
}