Closure - for vs foreach

μΉ΄μΉ΄μ˜€ν†‘ λ‹·λ„· μ±„νŒ…λ°©μ—μ„œ @aroooong λ‹˜μ΄ μ°Ύμ•„μ£Όμ‹  λ‚΄μš©μž…λ‹ˆλ‹€.

ClosureλŠ” μ•„λŠ” μ‚¬λžŒλ“€μ€ μ•„λŠ” 언어적 νŠΉμ„±μž…λ‹ˆλ‹€.
C#μ—λ§Œ μžˆλŠ” 것은 μ•„λ‹ˆκ³  Lambda 식이 μžˆλŠ” μΌκΈ‰ν•¨μˆ˜λ“€μ— λ‚˜νƒ€λ‚˜λŠ” νŠΉμ§•μœΌλ‘œ μ•Œλ €μ Έ μžˆμŠ΅λ‹ˆλ‹€.

λ‹€λ§Œ C#μ—μ„œ for일 λ•ŒλŠ” Closure의 νŠΉμ„± λ•Œλ¬Έμ— forλ¬Έ μ•ˆμ—μ„œ delegate λ©”μ„œλ“œλ₯Ό λ™μž‘μ‹œν‚¬ λ•Œ for의 count λ³€μˆ˜λ₯Ό μ‚¬μš©ν•œλ‹€λ©΄ for의 μŠ€μ½”ν”„ λ‚΄μ—μ„œ μƒˆλ‘œ ν• λ‹Ήν•΄μ„œ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.
κ·Έλž˜μ•Όλ§Œ μ˜λ„λŒ€λ‘œ μ½”λ“œκ°€ λ™μž‘ν•©λ‹ˆλ‹€.

그런데 foreachμ—μ„œλŠ” λ”°λ‘œ ν• λ‹Ήν•˜μ§€ μ•Šμ•„λ„ foreachμ•ˆμ—μ„œ Delegate λ©”μ„œλ“œλ₯Ό λ™μž‘μ‹œν‚€λ©΄ λ¬Έμ œμ—†μ΄ λ™μž‘ν•©λ‹ˆλ‹€.
μ €λŠ” 이런 ν˜„μƒμ΄ foreachκ°€ Enumerable μ»¬λ ‰μ…˜μ—μ„œ ν•˜λ‚˜μ”© λ°›μ•„μ„œ μ“°κΈ° λ•Œλ¬Έμ΄λΌλ„ μƒκ°ν–ˆμ—ˆλŠ”λ° 그게 μ•„λ‹ˆκ³  μ•„λž˜μ™€ 같은 μ΄μŠˆκ°€ 있기 λ•Œλ¬Έμ΄μ—ˆμŠ΅λ‹ˆλ‹€.

foreach의 λ³€μˆ˜ μ‚¬μš©μ΄ C # 5μ—μ„œ λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆκΉŒ? - μŠ€νƒ μ˜€λ²„ν”Œλ‘œ (stackoverflow.com)

while문에 μ‚¬μš©λ˜λŠ” V v;κ°€ μ•ˆμ—μ„œ μ„ μ–Έλ˜μ—ˆλŠ”μ§€, λ°–μ—μ„œ μ„ μ–Έλ˜μ—ˆλŠ”μ§€ 에 따라 forλ¬Έκ³Ό 같은 ν˜•νƒœμ˜ νŒ¨ν„΄μ„ 보이고 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

μ’‹μ•„μš” 4

이 참에 ν™•μ‹€νžˆ ν΄λ‘œμ €μ— λŒ€ν•΄μ„œ μ•Œκ²Œ λμŠ΅λ‹ˆλ‹€.
쒋은 κΈ€ 곡유 κ°μ‚¬ν•©λ‹ˆλ‹€.

μ’‹μ•„μš” 3