http://msdn.microsoft.com/en-us/library/bb763133.aspx
Module Module1
Sub Main()
Dim array1 As Func(Of Integer)() = New Func(Of Integer)(4) {}
For i As Integer = 0 To 4
array1(i) = Function() i
Next
For Each funcElement In array1
System.Console.WriteLine(funcElement())
Next
End Sub
End Module
Он говорит, что результатом всегда будет 5, а именно окончательное значение i. Как получилось?
Они не помещают переменную итерации в "замыкание"?