C# 루프 변수 재사용 : 문제 및 솔루션
foreach
외부로 선언됩니다. 이 디자인은 처음에는 무해한 것처럼 보이지만 문제를 만듭니다. 성능 이점을 제공하지 않으며 루프 외부의 가변 사용을 제한합니다.
이 디자인이 왜? foreach
이 변수 재사용은 초기 C# (1.0)에서 설계 선택이었습니다. 내부와 외부 변수의 차이는 중요하지 않은 것으로 간주되었습니다. 그러나 C# 2.0의 폐쇄 시맨틱은 이것을 바꿨습니다.
foreach (var s in strings)
{
query = query.Where(i => i.Prop == s); // Modified closure issue
...
}
<code class="language-csharp">string s;
while (enumerator.MoveNext())
{
s = enumerator.Current;
...
}</code>
내부입니다. 각 반복은 신선한 사본을 얻습니다. s
루프의 Lambdas 또는 익명 방법으로 신중한 키워드 사용의 중요성을 강조합니다.
위 내용은 C# foreach 루프 변수 재사용 재사용이 '수정 된 폐쇄에 대한 액세스'문제를 일으키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!