Jun 25, 2009

Lambda Example 1


public class TestLambda
{
delegate int AddOneDgt(int x);

/// <summary>
/// Details at: http://blogs.msdn.com/ericwhite/pages/Lambda-Expressions.aspx
/// </summary>
public static void DoWork()
{
int a = 3;
// Pointer to a static function
AddOneDgt addOneFctPtr = new AddOneDgt(A.AddOne);
// Pointer to an instance function
AddOneDgt addOneFctPtr1 = new AddOneDgt(new A().AddOneInst);
// C# 2.0 - Anonymous functions
AddOneDgt addOneInlinePtr = new AddOneDgt(delegate(int x) { return x + 1; });
// C# 3.0 - Lambda
AddOneDgt addOneLambdaPtr = x => x + 1;

Console.WriteLine(string.Format("A. {0} + 1 = {1}", a, addOneFctPtr(a)));
Console.WriteLine(string.Format("B. {0} + 1 = {1}", a, addOneFctPtr1(a)));
Console.WriteLine(string.Format("C. {0} + 1 = {1}", a, addOneInlinePtr(a)));
Console.WriteLine(string.Format("D. {0} + 1 = {1}", a, addOneLambdaPtr(a)));
}

public class A
{
public static int AddOne(int x)
{
return x + 1;
}

public int AddOneInst(int x)
{
return x + 1;
}
}
}


Output:
A. 3 + 1 = 4
B. 3 + 1 = 4
C. 3 + 1 = 4
D. 3 + 1 = 4

No comments:

Post a Comment