| 

.NET C# Java Javascript Exception

10
worin liegt der sinn von lambda ausdrücken. gibts irgendwo eine gute doku mit beispielen? was ich bis jetzt gefunden habe, verwirrt mehr als es mir hilft.
08.03.2011
Batman 149 2 6
6 Antworten
8
Schau Dir mal den Artikel Die Entwicklung von LINQ und ihre Auswirkung auf das Design von C# aus dem MSDN Magazin Jun 2007 an. Dort gibt es u.a. einen Abschnitt zu Lambda-Ausdrücken
Zitat aus o.a. Artikel
Bei Lambda-Ausdrücken handelt es sich um ein Sprachfeature, das in vielerlei Hinsicht Ähnlichkeit mit anonymen Methoden hat. Wenn Lambda-Ausdrücke schon von Anfang an in die Sprache eingeflossen wären, hätte es eigentlich gar keinen Bedarf für anonyme Methoden gegeben...
09.03.2011
Joachim 3,1k 4 9
1
Cooler Artikel
Floyd 09.03.2011
6
Ich verwende Lambda Expressions meist bei Linq und bei Events. Der Vorteil bei Events: man braucht keine Funktion deklarieren, was bei einfachen Funktionen von Vorteil ist.
Beispiel mit Funktionen:
public void Test()
{
button1.Click += new EventHandler(button1_click);
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Bingo");
}


Mit Lambda schaut es wie folgt aus:
public void Test()
{
button1.Click += (sender, e) => MessageBox.Show("Bingo");
}
08.03.2011
GerhardK 398 1 7
5
Lambda-Ausdrücke können als anonyme Methoden aber auch als Ausdrucksbaumstrukturen genutzt werden.

Eine nette Zusammenfassung mit paar Beispielen findest du hier.
08.03.2011
Konstantin 3,7k 1 8
Guter Link. +1
Thomas Sczyrba 18.11.2011
4
Lambdas sind Anonyme Ausdrücke
Vor den Lambdas hast du Delegaten gebraucht um gewisse Methoden auszuführen
Mit den Lambdas geht das wesentlich einfacher :
Aus der MSDN
Mit Delegaten
delegate int del(int i);
static void Main(string[] args)
{
del myDelegate = x => x * x;
int j = myDelegate(5); //j = 25
}

Mit Lambda
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Expression<del> myET = x => x * x;
}
}
}


Eigenes Beispiel anhand von Thread :
new Thread(() => work.Start()).Start();
08.03.2011
Pawel Warmuth 195 6
3
Lambda-Ausdrücke kommen auch bei LINQ vor. Ich persönlich finde diese Schreibweise nach einer gewissen Einarbeitungszeit deutlich schöner und lesbarer. Leider gibt's die in DER Form nur in C#, die VB-Version ist optisch verkrüppelt.

LINQ Abfragensyntax:

var query = FROM p IN programmers 
WHERE p.Website = 'Codekicker'
SELECT p


LINQ Methodensyntax:
var query = programmers.Where( p => p.Website = 'Codekicker')


Zudem hat in diesem Fall die Methodensyntax den Vorteil, das man den Select-Abschnitt nicht extra angeben muss, wenn man sowieso die gesamte Entität auswählen möchte. Das ist aber sicher kein Effekt von Lambda-Ausdrücken.
08.03.2011
Jens Duczmal 2,6k 1 3 9
Der VOllständigkeithalber - mit VB hätte das so ausgesehen:
dim query = programmers.Where( Function(p) p.Website = 'Codekicker')
Thomas Sczyrba 08.04.2011
1
Es muss aber in beiden Fällen trotzdem '==' zum Vergleichen verwendet werden ;)
LunaticShade 18.11.2011
Da hat LunaticShade natürlich recht
WolfgangKluge 18.11.2011
1
Zwar lang her, aber vielleicht hilfts ja. Ein weiterer Artikel zur Verwendung als anonyme Methode:
http://gehirnwindung.de/post/2009/05/07/Tanz-den-Lambda-mit-mir.aspx
18.11.2011
WolfgangKluge 1,0k 2 7

Stelle deine .net-Frage jetzt!