C# - 캡쳐(Capture), 클로져(Closure) - feat React.useState
·
C#
델리게이트(delegate)는 메서드를 참조할 수 있는 타입이다.그런데 실제 Unity 같은 환경에서 델리게이트를 남용하다 보면, 사라졌어야 할 객체가 여전히 참조된 채 메모리에 남아 기이하게 동작하는 경우가 생긴다.이는 대부분 캡쳐(변수 포착, Capture) 와 클로져(Closure, 포착된 변수를 계속 보존하는 환경) 의 문제 때문이라고 하는데이 두가지에 대해 자세히 알아보자. 캡쳐(Capture)람다식이 외부의 지역 변수를 가져다가 내부에서 사용하는 것을 말한다.int count = 0;Action myAction = () =>{ count++; // 외부 변수 count를 가져다가 사용 (캡처 발생) Console.WriteLine(count);};myAction(); // 1myA..