0
은 그럼이 코드가 있다고 가정 해 보자 만들 때 로컬 변수 상태를 유지 : 대의원의 모든 "I"s는 지적 때문에 출력은대리인이
4
4
4
4
될 것
Func<int>[] list = new Func<int>[4];
for (int i = 0; i < 4; ++i)
{
list[i] = delegate
{
return i;
};
}
foreach (var f in list) Console.WriteLine(f());
같은 변수에요.
대리인이 만들어 졌을 때의 상태를 유지할 수있는 방법이 있습니까?
안녕하세요. 그게 효과가있어! 그건 그렇고, 내 코드는 자바 스크립트 동등 물을 쓸 때 내가 원하는 것을 수행한다. 이 두 언어가 서로 다르게 행동하는 이유는 무엇입니까? –
이것을 읽으십시오. http://stackoverflow.com/a/2639032/425871 – Steve
@LukaHorvat 자바 스크립트 코드는 값이 아닌 변수를 캡처해야하기 때문에 게시해야합니다. 색인 변수를 재사용하고 있습니까? 변수는 javascript에서 블록 범위가 아닌 함수 범위를가집니다. –