여기에 임의의 질문이 있습니다.동적 이벤트 처리
나는 Monkey라는 객체와 Banana라는 객체를 가지고 있습니다. 바나나 (Banana)는 원숭이 (Monkey) 개체가 구독하는 Ripens라는 이벤트를 노출했습니다. Ripens 이벤트가 발생하면 원숭이가 Consum() 함수를 호출하여 바나나 객체를 파괴합니다.
예 :
//And yes, I know this isnt real C# code. Just trying to get my point across and
//not necessarily be syntatically correct with this exmaple.
public class Banana
{
public event Ripens;
}
public class Monkey
{
public Monkey()
{
List<Banana> tree = new List<Banana>();
for (int i = 0; i < 8; i ++)
{
tree.Add(new Banana());
tree[i].Ripens += this.Consume;
}
}
public void Consume(Banana b)
{
tree.Remove(b);
b.Destroy();
}
}
그래서 내 질문에 다음입니다 : 원숭이가 먼저 이벤트에서 탈퇴하지 않고 파괴 될 때마다 바나나 메모리를 피 않습니다. 아니면 Monkey의 이벤트 핸들러가 바나나와 함께 파괴 될까요?
중복의 http://stackoverflow.com/questions/298261/do-event-handlers-stop-garbage-collection-from-occuring. 그리고 대답은 부정입니다. 바나나는 구독 여부와 관계없이 수집됩니다. – Andrei