Share via


Weird lambda usage

I had posted previously that I don't like lamda in C#. The reason is that C# had a different nature before. This is drastically changing and soon we'll have huge amounts of code having lambda and other cool new shiny language features which'll make it alien to a large part of its user base. People are already putting up samples that use code as follows

 static void Main(string[] args)
{
    (Printer())(42);
}

static Action Printer()
{
    return (T t) =>
              {
                  Console.WriteLine(t);
              };
}

Comments

  • Anonymous
    February 22, 2007
    I write code like this quite often, what it is issue with it?And that is on .Net 1.1 (originally) and now on .Net 2.0
  • Anonymous
    February 25, 2007
    Nothingis wrong with this if you come from C/C++ background where you are always used to muck up with function pointers. But a whole bunch of C# programmers are not and they completely get lost in these maze
  • Anonymous
    February 27, 2007
    I've done some C++, but have not read anything about lambda. First this code looked really weird to me, but after a while I got the whole call a method which returns a method which you call. However I still do not understand the lambda statement completely. So I do agree  that this will be confusing for a lot of people, me included. I'm not sure I like it either.
  • Anonymous
    March 05, 2007
    Well, it's not the tool's fault that someone abuses a tool.  Would you have the same complain if the same code were written in a more sane fashion:static void Main(string[] args){   Action printit = GetPrinterFunc();   printit(42);}static Action GetPrinterFunc(){   return (T t) =>             {                 Console.WriteLine(t);             };}