Es gibt in letzter Zeit immer häufiger Momente, in denen mich das Gefühl beschleicht, den falschen Beruf ergriffen zu haben. Moderne Computersprachen warten mit immer komplexeren Konstrukten auf, die mein kleines Affenhirn nicht versteht. Auch die dazugehörigen "Erklärungen" lassen mich dreinblicken wie der berühmte Ochs vorm Berg.
Irgendwo in den Tiefen unseres aktuellen Projekts findet sich diese Codezeile:
Object bla = request.parameters.parameter.Single(p => p.name == "projectid");
Was hier passiert, erschließt sich mir nicht überhaupt nicht. Das liegt unter anderem daran, dass ich den Operator "=>" noch nie gesehen habe. Und nun die Erklärung aus dem Microsoft Developer Network dazu:
Alle Lambda-Ausdrücke verwenden den Operator Lambda =>, der so viel bedeutet wie "wechselt zu".Auf der linken Seite des Operators Lambda werden die Eingabeparameter angegeben (falls vorhanden), und auf der rechten Seite befindet sich der Ausdruck oder Anweisungsblock.Der Lambda-Ausdruck x => x * x bedeutet "x wechselt x Mal zu x". Dieser Ausdruck kann wie folgt einem Delegattyp zugewiesen werden:
w00t? 8O was soll das denn bitte bedeuten? "wechseln zu"? "x wechselt x mal zu x"?!? *seufz*
Fassen wir das mal in Worte: Dem Object bla wird der Wert von request.parameters.parameter.Single zugewiesen, der herauskommt, wenn p zu p.name wechselt und dabei gleich "projectid" ist? Kleine Bemerkung am Rande: p wird nirgends definiert, es erscheint also einfach so aus dem Nix.
Kahore ahau e mohio ana ki to korereo.
PS: Das ist übrigens ein Übersetzungsfehler! Auf Englisch heißt es "x goes to x times x", was bedeutet: "x wird zu x mal x" und eben nicht "x wechselt x Mal zu x". Außerdem erklärt das Codebeispiel ganz gut, was da passieren soll. Allerdings sind Delegates auch so ein Ding, wo ich oft denke "das geht aber auch übersichtlicher"