Entwickler-Ecke

C# - Die Sprache - Lambda Ausdruck


kostonstyle - Mi 14.10.09 13:47
Titel: Lambda Ausdruck
Hallo miteinander
habe eine Frage zu lambda Ausdrücke, hier beispiele


C#-Quelltext
1:
2:
Func<int> f1 = () => number * 2;
Func<intint> f2 = x => x + 1;

Erhalte ich am Schluss nicht eine Zahl? Mit Lambda Ausdruck drückt man etwas aus und erhält dabei das Resultat.

Danke kostonstyle


Kha - Mi 14.10.09 13:58

Nein. Du erhältst eine Funktion zurück (genauer gesagt einen Delegate).

C#-Quelltext
1:
Func<intint> f2 = x => x + 1;                    

ist äquivalent zu

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
int F2(int x)
{
  return x + 1;
}

...

Func<intint> f2 = F2;

Der Aufruf f2(42) liefert dann einen int zurück, genauso wie F2(42).


Damit ist das Thema natürlich nur angerissen, für detailiertere Erklärungen würde ich eher zu (Online-) Büchern wie das Open Book C# von Galileo greifen.


kostonstyle - Do 15.10.09 07:53

Ok, habe jetzt einiger Masse verstanden. Ein Delegate definiert man, um während der Laufzeit eine Methode zuzuweisen.