... | @@ -536,6 +536,7 @@ class MultiAwaitTest |
... | @@ -536,6 +536,7 @@ class MultiAwaitTest |
|
|
|
|
|
6. 람다식의 변수 스코프는?
|
|
6. 람다식의 변수 스코프는?
|
|
람다 식은 람다 함수를 정의하는 메서드 범위 내에 있거나 람다 식을 포함하는 형식 범위 내에 있는 외부 변수를 참조할 수 있습니다. (MSDN)
|
|
람다 식은 람다 함수를 정의하는 메서드 범위 내에 있거나 람다 식을 포함하는 형식 범위 내에 있는 외부 변수를 참조할 수 있습니다. (MSDN)
|
|
|
|
Free Variable(밑의 코드에서는 j)가 스택에서 사라지는 현상을 막기위해서 C# 컴파일러는 자체적으로 nested class를 만들어서 Free Variable을 필드, 람다 식을 메서드로 저장한다. 그러면 힙에 저장되기 때문에 계속해서 상태가 유지될 수 있다. 더 이상 참조하는 객체가 없으면 이 Nested class는 GC에 의해 해제된다.
|
|
|
|
|
|
```c#
|
|
```c#
|
|
class LambdaScope
|
|
class LambdaScope
|
... | | ... | |