Nachdem ich das alles mal studiert habe:
Lambda-Ausdrücke sind also im wesentlichen nur eine Möglichkeit, anonyme Methoden in Kurzform darzustellen ?
Und anonyme Methoden wiederum sind im wesentlichen eine Möglichkeit, seine "Utils.cs" (also die Quelltextdatei mit all den kleinen, nirgendwohin passenden Hilfsroutinen) kurz zu halten - sprich, sich Tipparbeit zu sparen ?
Ich erkenne das gewaltige Potential, sein Programm sehr kompakt zu formulieren - und es gleichzeitig ungeheuer unlesbar zu gestalten
Demontieren wir unser Parallels.For-Beispiel - nur zum Verständnis
C#-Quelltext
1: 2: 3: 4:
| Parallel.For(0, n, i => { BlockVar[i]++; }); |
Den Lambda formulieren wir aus, in Form einer anonymen Methode:
C#-Quelltext
1:
| Parallel.For(0,n, delegate (int i) {BlockVar[i]++;}); |
Die anonyme Methode formulieren wir nun auch komplett aus:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| delegate void Operation(int i);
void AddOne(int Index) { BlockVar[Index]++; }
Operation op=this.AddOne; Parallel.For(0,n,op); |
Habe ich das so in etwa richtig begriffen ?
Lies, was da steht. Denk dann drüber nach. Dann erst fragen.