Hacker News new | comments | ask | show | jobs | submit login

You just can't do it implicitl because the compiler can't distinguish Func<string> from Expr<Func<string>>.

But you can have a generic extension method that returns one of the types and then via inference you can do it implicitly typed.

It shoud be something like this in C# 5:

  public static class Lamb
      public static Func<T> da(this Func<T> f)
          return f;
and then:

  var egocentricFn = Lamb.da(() => "im a function");
I find it really useful not for Func's but for Expressions, as the type declarations can get pretty long.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact