Demonstrate a captured variable.
using System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace
DemoCapture
{
// This delegate
returns int and takes an int argument.
delegate int CountIt(int end);
class VarCapture
{
static CountIt counter()
{
int
sum = 0;
// Here,
a summation of the count is stored
// in the
captured variable sum.
CountIt
ctObj = delegate(int
end)
{
for
(int i = 0; i <= end; i++)
{
Console.WriteLine(i);
sum += i;
}
return
sum;
};
return
ctObj;
}
class Program
{
static
void Main(string[] args)
{
//
Get a counter
CountIt
count = counter();
int
result;
result = count(3);
Console.WriteLine("Summation of 3 is " + result);
Console.WriteLine();
result = count(5);
Console.WriteLine("Summation of 5 is " + result);
Console.ReadKey();
}
}
}
}
Purpose of Delegate
- It supports event programming
- It gives the program a way to execute a method at runtime
without having to know
precisely what that method is at compile time.
No comments:
Post a Comment