Rash thoughts about .NET, C#, F# and Dynamics NAV.


"Every solution will only lead to new problems."

Friday, 6. October 2006


Lambda Operator C# 3.0

Filed under: .NET 3.0,C#,F# — Sebastian Wolf at 18:00 Uhr

Delegates gibt es schon in C#, aber mit dem Lambda Operator (=>) geht das nun kürzer.

Folgendes generisches Beispiel (bisher):

CSharp [Show Plain Code]:
  1. delegate T Func(T t);
  2. Func  funcDel = delegate(int x)
  3. {
  4. return x + x;
  5. }
  6. Console.WriteLine(funcDel(5));

Äquivalent mit Lampda Operator:

CSharp [Show Plain Code]:
  1. Func lambda = x => x + x;
  2. Console.WriteLine(lambda(5));

3 Comments »

  1. Scheiss Beschreibung, da keines der beiden kompiliert.
    Wenn man es nicht erklären kann, soll man es lassen.

    Comment by batman — Monday, 6. October 2008 um 14:12 Uhr

  2.     class Program
        {
            delegate T Func<T>(T t);
    
            static void Main(string[] args)
            {
                Func<int> funcDel = delegate(int x)
                                        {
                                            return x + x;
                                        };
    
                Console.WriteLine(funcDel(5));
                
                Func<int> lambda = x => x + x;
                Console.WriteLine(lambda(5));
    
                Console.ReadLine();
    
            }
        }
    

    Das sollte unter C# 3.0 kompilieren.

    Comment by Steffen Forkmann — Monday, 6. October 2008 um 15:27 Uhr

  3. Die F#-Variante ist übrigens noch schöner:

    #light
    
    let twice x = x + x 
    printfn "%d" <| twice 5
    

    Comment by Steffen Forkmann — Monday, 6. October 2008 um 15:34 Uhr

RSS feed for comments on this post. | TrackBack URI

Leave a comment

XHTML ( You can use these tags): <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> .