Ecrire une expression lambda récursive

Auteur du billet de blog : Nicolas Hilaire - Neotech Solutions

Nicolas Hilaire

Consultant .NET
  Publié le vendredi 1 juillet 2016

Artisan logiciel particulièrement intéressé par les technologies .NET. Polyvalent et curieux, je suis néanmoins à l'écoute des autres technologies du marché. MVP (Microsoft Most Valuable Professional) de 2007 à 2014, je suis également auteur d'un ouvrage pour apprendre le C#, à destination des débutants et de plusieurs MOOCs sur le C#, Windows Phone ou ASP.NET MVC...

Une petite astuce si vous souhaitez créer une lambda récursive. Partons sur la traditionnelle Factorielle avec par exemple le code suivant :

 

 

Si vous tentez de transformer cette méthode en expression lambda :

 

 

vous aurez une erreur de compilation :

Use of unassigned local variable fact

Et pour résoudre ce problème, il suffit de séparer la déclaration de l’initialisation :

 

Simple.