C# lambda 표현식 변수 캡처
는 이미 최종 값에 도달했습니다.
솔루션 : 사본 생성
루프와 관련이 없음을 주목하는 것이 중요합니다. 컴파일러는이 문제를 방지하기 위해 변수 캡처를 다르게 처리합니다. 그러나 명시 적 복사 방법은 구형 C# 버전과의 명확성과 호환성을위한 모범 사례로 남아 있습니다. 이 접근법을 사용하면 모든 C# 버전 및 루프 유형에서 일관된 동작이 보장됩니다.List<Func<int>> actions = new List<Func<int>>();
int variable = 0;
while (variable < 10)
{
actions.Add(() => variable * 2);
++variable;
}
foreach (var act in actions)
{
Console.WriteLine(act.Invoke());
}
위 내용은 루프의 C# lambda 표현식이 왜 최종 변수 값을 캡처하고 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!