Recursive call with anonymous function
Sunday, October 29th, 2006{
return (n==1) ? 1 : n + Triangle(n-1);
}
- First finds the current performing method using top frame in the StackTrace.
- And then invokes it.
public delegate int TriangleDelegate(int n); public static int AnonymousMethodTriangle(int n)
{
TriangleDelegate triangle = delegate(int n)
{
//Find Method
MethodBase method =
new StackTrace().GetFrame(0).GetMethod();
return (n == 1) ? 1 : n +
(int)method.Invoke(null,new object[]
{n-1});//Invoke Method
};
return triangle(n);
}