Delegates and Lambdas
Lambda Expressions
A lambda expression creates a small function inline.
lambda
A lambda uses `=>` to define callable behavior in place.
Lambda Expressions
LambdaExpressions.cs
Replay: real traced execution (multi-file project)
using System;
class Program
{
static void Main()
{
int offset = 2;
Func<int, int> addOffset = value => value + offset;
int result = addOffset(10);
Console.WriteLine($"offset={offset}");
Console.WriteLine($"result={result}");
}
}
using System;
class Program
{
static void Main()
{
int offset = 1;
Func<int, int> addOffset = value => value + offset;
int result = addOffset(10);
Console.WriteLine($"offset={offset}");
Console.WriteLine($"result={result}");
}
}
using System;
class Program
{
static void Main()
{
int offset = 5;
Func<int, int> addOffset = value => value + offset;
int result = addOffset(10);
Console.WriteLine($"offset={offset}");
Console.WriteLine($"result={result}");
}
}
offset ← 2, addOffset ← System.Func`2[System.Int32,System.Int32]
4{5 static void Main()6 {7 int offset→ 2 = 2; //@offset=1, 58 Func<int, int> addOffset→ System.Func`2[System.Int32,System.Int32] = value => value + offset;9 int result→ 12 = addOffset(10);1011 Console.WriteLine($"offset={offset2}");12 Console.WriteLine($"result={result12}");13 }outputoffset=2 result=12
offset ← 1, addOffset ← System.Func`2[System.Int32,System.Int32]
4{5 static void Main()6 {7 int offset→ 1 = 1;8 Func<int, int> addOffset→ System.Func`2[System.Int32,System.Int32] = value => value + offset;9 int result→ 11 = addOffset(10);1011 Console.WriteLine($"offset={offset1}");12 Console.WriteLine($"result={result11}");13 }outputoffset=1 result=11
offset ← 5, addOffset ← System.Func`2[System.Int32,System.Int32]
4{5 static void Main()6 {7 int offset→ 5 = 5;8 Func<int, int> addOffset→ System.Func`2[System.Int32,System.Int32] = value => value + offset;9 int result→ 15 = addOffset(10);1011 Console.WriteLine($"offset={offset5}");12 Console.WriteLine($"result={result15}");13 }outputoffset=5 result=15