> 백엔드 개발 > C++ > C# 루프 동작이 동일한 변수를 캡처하는 이유는 무엇이며 어떻게 피할 수 있습니까?

C# 루프 동작이 동일한 변수를 캡처하는 이유는 무엇이며 어떻게 피할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2025-02-03 07:44:16
원래의
621명이 탐색했습니다.

사이클 캡처의 변수 Why Do C# Loop Actions Capture the Same Variable, and How Can This Be Avoided?

C#에서 주기에서 작업을 정의 할 때 변수 캡처의 동작에주의를 기울여야합니다. 기본적으로 모든 작업은 동일한 변수를 캡처하여 출력 결과가 호출 할 때 예상을 충족시키지 못하게합니다.

다음 예를 고려하십시오 : 이 코드의 예상 출력은 0, 2, 4, 6 및 8입니다. 그러나 실제 출력은 5 10입니다. 이는 모든 작업이 동일한 캡처 된 변수 를 인용하여 사이클에서 업데이트되기 때문입니다. 호출 할 때 모든 작업은 동일한 값을 갖습니다.

이 문제를 피하고 각 조작 인스턴스가 자체 캡처 변수가 있는지 확인하려면 사이클의 변수를 복사해야합니다.

변수의 로컬 사본을 통해 각 작업은 고유 한 값을 캡처하여 예상 출력 0, 2, 4, 6, 8을 얻습니다.

이 변수 캡처의 개념은 C#의 폐쇄를 이해하는 데 중요합니다. 주기 내에서 작업을 정의 할 때는 변수의 수명주기와 접근성을 고려해야합니다.

위 내용은 C# 루프 동작이 동일한 변수를 캡처하는 이유는 무엇이며 어떻게 피할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿