C# 2.0 ile birlikte gelen isimsiz metodları (anonymous methods) hepimiz biliyoruz. Peki ya bu isimsiz metod kendi kendini - recursive - nasıl çağıracak ? Malum adı üstünde metodun ismi yok.Aşağıda isimsiz bir metodun - klasik faktöryel hesaplayan - kendi kendini nasıl çağırdığına dair kodu inceleyebilirsiniz.
delegate T Func<T>( T a );static void Main( string[] args ){ Func<int> f = delegate( int a ) { MethodBase m = new StackTrace().GetFrame(0).GetMethod(); return a > 1 ? a * (int)m.Invoke(null, new object[] { a - 1 }) : a; }; Console.WriteLine(f(4));}
Remember Me