Laden...

[erledigt] Frage: => Operator [Antwort: Lambda-Operator]

Erstellt von 7.e.Q vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.180 Views
7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 14 Jahren
[erledigt] Frage: => Operator [Antwort: Lambda-Operator]

Hi Leute,

kann mir jemand 'n Link zu 'ner Erklärung des/der => Operators/Operatoren geben (Plural, sofern mehrere Bedeutungen vorhanden)? Über Google und die Board-Suche kann ich nichts finden, da man da nicht explizit nach '=>' suchen kann.

Ich kenne eine Verwendung des Operators aus dem Kontext anonymer Methoden



blubbObject.BlubbEvent += (sender, e) => 
{
    doSomethingBlubb();
};


Wie nennt man den/die Operator/en im allgemeinen Sprachgebrauch? Wofür verwendet man ihn noch?

Danke!

Grüße,
Hendrik

49.485 Beiträge seit 2005
vor 14 Jahren

Halo 7.e.Q,

ein Ausdruck, der diesen Operator verwendet, nennt sich Lambda-Ausdruck. Wofür diese gut sind, hast du ja schon herausgefunden.

herbivore

7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 14 Jahren

Danke, den Begriff hab ich gesucht. Perfekt! 👍 👍 👍

6.862 Beiträge seit 2003
vor 14 Jahren

=> ist der Lambda Operator und wird wie der Name schon sagt, bei der Deklaration von Lambda Expressions verwendet um Input Argumente auf der linken Seite vom eigentlich Expression Ausdruck auf der rechten Seite zu trennen.

Dein Beispiel ist streng genommen auch keine anonyme Methode, sondern wie schon erwähnt, eine Lambda Expression. Ne anonyme Methode würde so aussehen:

blubbObject.BlubbEvent += delegate(object o, EventArgs e)
{
    doSomethingBlubb();
}; 

Wobei die sich in den meisten Fällen, gerade bei solcher Verwendung, gleich verhalten.

Baka wa shinanakya naoranai.

Mein XING Profil.

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo talla,

Wobei die sich in den meisten Fällen, gerade bei solcher Verwendung, gleich verhalten.

an welchen Stellen denn nicht?

herbivore

6.862 Beiträge seit 2003
vor 14 Jahren

Wenn die Lambda Expression wirklich als Ausdruck benutzt wird um Expression Trees aufzubauen wie z.b. hier:

Expression<Func<int,double>> squareExp = (x) => Math.Pow(x,2);
Console.WriteLine(squareExp.Compile()(5));

Das hat dann gar nichts mehr mit anonymen Methoden zu tun, der Lambda Ausdruck sieht dabei aber analog zum ersten Beispiel aus.

Auch wenn man Queries in Linq formuliert, werden Lambda Expressions ja in Hülle und Fülle benutzt. Dort sind sie auch nicht einfach nur anonyme Methoden, sondern auch Expression Trees die einen großen Vorteil haben - man kann den Code nachträglich umstrukturieren und optimieren.

Baka wa shinanakya naoranai.

Mein XING Profil.

7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 14 Jahren

8o

oooooookay. Expression Trees... Ich glaub, ich geh mal ein bisschen C# lernen. X(

6.862 Beiträge seit 2003
vor 14 Jahren

🙂 Es gibt immer was neues zu entdecken

Lambda Ausdrücke haben ja im Zuge von Linq in Version 3.5 vom .Net Framework Einzug gehalten. Gerade wenn man sich mit Linq ausführlich beschäftigt, eigene Linq Provider schreibt z.B, dann muss man sich damit ausführlich beschäftigen um die Ausdrücke optimal verwerten zu können.

Aber im alltäglichen Geschäft, brauch man die weniger obwohl nen paar tolle Dinge mit möglich sind. Nicht schlimm die nicht in aller Tiefe zu kennen. Aber zu wissen, das es sowas gibt, ist immer gut 🙂

Baka wa shinanakya naoranai.

Mein XING Profil.

7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 14 Jahren

Naja, mich reizt sowas immer.

Eines meiner größten Hobbies ist es, Programmiersprachen zu lernen, weshalb ich auch jahrelang Softwareentwickler war und so einige Sprachen oberflächlich beherrsche.

Leider hatte ich an meinem Arbeitsplatz nie so recht die Gelegenheit, mal in die Tiefen der C# Programmierung einzusteigen. Das ging bisher immer nur hobbymäßig zuhause oder wenn ich mal wieder Zeit hatte, was privates am Arbeitsplatz zu programmieren; das fiel dann unter Weiterbildung. 😃

Man muss ja alles mal gemacht haben, um mitreden zu können.

2.891 Beiträge seit 2004
vor 14 Jahren

Hallo zusammen,

siehe auch [Artikel] Delegaten, anonyme Methoden, Lambda-Ausdrücke & Co.

Beste Grüße,
dN!3L