Autor Beitrag
kostonstyle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 94



BeitragVerfasst: Mi 14.10.09 13:47 
Hallo miteinander
habe eine Frage zu lambda Ausdrücke, hier beispiele

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 14.10.09 13:58 
Nein. Du erhältst eine Funktion zurück (genauer gesagt einen Delegate).
ausblenden C#-Quelltext
1:
Func<intint> f2 = x => x + 1;					

ist äquivalent zu
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 94



BeitragVerfasst: Do 15.10.09 07:53 
Ok, habe jetzt einiger Masse verstanden. Ein Delegate definiert man, um während der Laufzeit eine Methode zuzuweisen.