... | ... | @@ -535,7 +535,8 @@ class MultiAwaitTest |
|
|
그냥 Random() 메서드가 발생시키는 난수는 항상 규칙적이다. 이를 의사 난수(pseudo-random number) 라고 한다. 의사 난수는 seed 값에 따라서 결과값이 달라지는데, 이 seed 값이 같으면 매번 같은 결과값이 나온다. 그래서 보통 seed 값에 시간을 넣어 Random() 결과가 시간의 흐름에 따라 계속해서 다르게 출력되는 식으로 이용한다. 이와 같은 방법으로 우리가 흔히 생각하는 의미(실행 할 때마다 값이 다르게 나오는)의 난수를 구현한다.
|
|
|
|
|
|
6. 람다식의 변수 스코프는?
|
|
|
람다 식은 람다 함수를 정의하는 메서드 범위 내에 있거나 람다 식을 포함하는 형식 범위 내에 있는 외부 변수를 참조할 수 있습니다. (MSDN)
|
|
|
람다 식은 람다 함수를 정의하는 메서드 범위 내에 있거나 람다 식을 포함하는 형식 범위 내에 있는 외부 변수를 참조할 수 있습니다. (MSDN)
|
|
|
Free Variable(밑의 코드에서는 j)가 스택에서 사라지는 현상을 막기위해서 C# 컴파일러는 자체적으로 nested class를 만들어서 Free Variable을 필드, 람다 식을 메서드로 저장한다. 그러면 힙에 저장되기 때문에 계속해서 상태가 유지될 수 있다. 더 이상 참조하는 객체가 없으면 이 Nested class는 GC에 의해 해제된다.
|
|
|
|
|
|
```c#
|
|
|
class LambdaScope
|
... | ... | |