x wechselt x Mal zu x

September 21st, 2010, 11:21 > da/Y\ax

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"

3 Meinungen zu “x wechselt x Mal zu x”

  1. DidiDaDude meinte:

    Also ich code ja grundsätzlich auch eher praktisch als theoretisch, aber ich halte dein Beispiel ja einfach für eine “anonyme Funktion”. Klingt aber natürlich viel unwissenschaftlicher ohne griechische Buchstaben.

    Der Trick an der Sache ist eigentlich aber die Methode Single:
    http://msdn.microsoft.com/de-de/library/bb535118.aspx

    Single iteriert also über alle request.parameters.parameter (ein Enumerable von Objects, denen der Compiler während der Iteration kurz den Namen “p” gibt weil das links vom => steht), und liefert Dir genau das Element p zurück, für das p.name == “projectid” zutrifft.

  2. daMax meinte:

    @DidiDaDude: Ich bin beeindruckt! Das beweist, dass mein kleines Affenhirn einfach nicht für solche Sachen geeignet ist und ich eher auf spekulative Programmierung setzen muss :-D

  3. DidiDaDude meinte:

    Spekulative Programmierung find ich super! Ich selber hab mich ja auf explorative Programmierung spezialisiert, in dem Bereich kann man glaub auch noch ganz groß rauskommen ;-)

Antworten

Dein Kommentar


Halte Dich bitte an die Spielregeln. Welche Emoticons du verwenden kannst, steht hier.
 
 Wer HTML kann, ist klar im Vorteil. Diese Tags sind erlaubt: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
 
 Bei der Menge an Spam-Kommentaren passiert es hin und wieder, dass ein Kommentar vom Spamfilter gefressen wird. Bitte sei mir nicht böse aber ich habe weder Zeit noch Lust, solch verloren gegangenen Kommentaren hinterher zu forschen. Wenn das öfters passiert, schreib' mir 'ne Mail damit ich dich whitelisten kann.

Ihr Browser versucht gerade eine Seite aus dem sogenannten Internet auszudrucken. Das Internet ist ein weltweites Netzwerk von Computern, das den Menschen ganz neue Möglichkeiten der Kommunikation bietet.

Da Politiker im Regelfall von neuen Dingen nichts verstehen, halten wir es für notwendig, sie davor zu schützen. Dies ist im beidseitigen Interesse, da unnötige Angstzustände bei ihnen verhindert werden, ebenso wie es uns vor profilierungs- und machtsüchtigen Politikern schützt.

Sollten Sie der Meinung sein, dass Sie diese Internetseite dennoch sehen sollten, so können Sie jederzeit durch normalen Gebrauch eines Internetbrowsers darauf zugreifen. Dazu sind aber minimale Computerkenntnisse erforderlich. Sollten Sie diese nicht haben, vergessen Sie einfach dieses Internet und lassen uns in Ruhe.

Die Umgehung dieser Ausdrucksperre ist nach §95a UrhG verboten.

Mehr Informationen unter www.politiker-stopp.de.