Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,15 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
|
||||
class Program
|
||||
{
|
||||
static void Main()
|
||||
{
|
||||
var captor = (Func<int, Func<int>>)(number => () => number * number);
|
||||
var functions = Enumerable.Range(0, 10).Select(captor);
|
||||
foreach (var function in functions.Take(9))
|
||||
{
|
||||
Console.WriteLine(function());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
0
|
||||
1
|
||||
4
|
||||
9
|
||||
16
|
||||
25
|
||||
36
|
||||
49
|
||||
64
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
class Program
|
||||
{
|
||||
static void Main( string[] args )
|
||||
{
|
||||
List<Func<int>> l = new List<Func<int>>();
|
||||
for ( int i = 0; i < 10; ++i )
|
||||
{
|
||||
// This is key to avoiding the closure trap, because
|
||||
// the anonymous delegate captures a reference to
|
||||
// outer variables, not their value. So we create 10
|
||||
// variables, and each created anonymous delegate
|
||||
// has references to that variable, not the loop variable
|
||||
var captured_val = i;
|
||||
l.Add( delegate() { return captured_val * captured_val; } );
|
||||
}
|
||||
|
||||
l.ForEach( delegate( Func<int> f ) { Console.WriteLine( f() ); } );
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
0
|
||||
1
|
||||
4
|
||||
9
|
||||
16
|
||||
25
|
||||
36
|
||||
49
|
||||
64
|
||||
Loading…
Add table
Add a link
Reference in a new issue