:가비지 수집기가 이벤트에 가입 된 객체를 지 웁니까? 나는 다음과 같은 경우
public class Test
{
public static void Main()
{
List<Person> persons = new List<Person> { new Person() };
persons[0].Sneezing += new EventHandler(Person_Sneezing);
persons = null;
}
public static void Person_Sneezing(object sender, EventArgs e)
{
(sender as Person).CoverFace();
}
}
가 대리자를 재채기 것하면 Person_Sneezing 방법에 대한 참조가 아니면이 GC에 의해 수집받을 않기 때문에 사람에 있던 사람이 [0] 여전히 메모리에 존재합니까?
누출이라고 부를 수 있습니까? 테스트가 진행되면 사람도 마찬가지입니다 [0]. –
물론, 모든 것이 사라집니다 * 최악의 경우, 응용 프로그램이 종료 될 때 모두 사라집니다! 나는 그것이 사라질 것이라고 생각할 때 그것이 사라지지 않을 때 그것을 누출이라고 부를 것이다. – mquander
(또한 사람 [0]에 대한 다른 참조를 작성하지 않았다면 다시 돌려받을 수 없으므로 기본적으로 아무것도 유출되지 않습니다.) – mquander