Показать сообщение отдельно
Старый 12.04.2014, 16:07   #1
radiobutton
Бывалый
 
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений
(для 546 пользователей)
Донный вопрос

Представим что у нас есть объект класса A. В одном из его методов передаем какое нить лямбда выражение в объект класса B, в котором сохраняется ссылка на него.
Что будит с лямбда выражением если на класс A потеряется ссылка в графе ссылок и условия для сборки мусора станут удачными. ?

Class Program
{
   private 
B _b;
   
void Main(string[] args)
   {
       
A a = new A();
       
_b = new B();
      
a.go(_b);
   }
}

Class 
A
{
     public 
go(B b)
     {
         
b.setAction(()=>{Debug.WriteLine("ololo");});
     }
}

Class 
B
{
    private 
Action _action;
    public 
void setAction(Action action)
    {
        
_action action;
    }

(Offline)
 
Ответить с цитированием