주기의 표지 변수 : 이상한 문제
예상과 달리이 코드는 예상 시퀀스 0, 2, 4, 6, 8 대신 5 "10"을 인쇄합니다.
>> 질문 : 사이클의 캡처 변수
의 최종 값을 인용합니다. 고유 값을 캡처하여 예상 출력을 생성합니다.
<code class="language-csharp">List<Action> actions = new List<Action>();
int variable = 0;
while (variable < 5)
{
actions.Add(() => Console.WriteLine(variable * 2));
++variable;
}
foreach (var act in actions)
{
act.Invoke();
}</code>
사본을 만들어 사이클에서 생성 된 각 클로저는 자체
위 내용은 내 C# 루프가 잘못된 변수 값을 캡처하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!