This article has been localized into German by the community.
In- & Dekrementoperatoren
Wenn Sie mit Werten arbeiten, insbesondere mit numerischen, wird es oft notwendig sein, 1 zu addieren oder zu subtrahieren. Das ist natürlich sehr einfach - Sie nehmen einfach den Wert, fügen 1 hinzu und weisen ihn dann der ursprünglichen Variablen zu. Hier ist ein Beispiel:
int userAge = 41;
userAge = userAge + 1;
Die Variable userAge enthält jetzt den Wert 42 anstelle von 41 - einfach! Sie können natürlich dasselbe tun, wenn Sie um 1 subtrahieren wollen:
userAge = userAge - 1;
Postfix Inkrement/Dekrement
C# hat jedoch einen viel kürzeren Operator, um sich um diesen Job zu kümmern: Der Inkrement/Dekrement-Operator. Es besteht einfach aus zwei plus oder zwei Minuszeichen direkt hintereinander. Hier ist das erste Beispiel, umgeschrieben, um diesen Operator zu verwenden:
int userAge = 41;
userAge++;
Console.WriteLine("Age of user: " + userAge);
Das Ergebnis ist genau das Gleiche, aber schau, es ist viel kürzer! Und wir können es noch kürzer machen, weil dieser Operator natürlich innerhalb einer bestehenden Anweisung verwendet werden kann:
int userAge = 41;
Console.WriteLine("Age of user: " + userAge++);
Aber warten Sie eine Minute - wenn Sie dies testen, werden Sie sehen, dass "userAge" immer noch als 41 ausgegeben wird. Warum? Weil wir die Postfix-Version verwenden, die NACH der umgebenden Anweisung ausgewertet wird. Mit anderen Worten, die Zeile wird gedruckt, bevor der Wert inkrementiert wird. Dies ist das gewünschte Verhalten in einigen Fällen, aber es ist nicht optimal für diesen speziellen Anwendungsfall. Was Sie brauchen, ist der Präfix Inkrementoperator.
Präfix Inkrement/Dekrement
Dieser Operator sieht genau wie die Postfix-Version aus, aber statt nach der Variablen zu erscheinen, wird er vorher erscheinen und den Interpreter anweisen, ihn auszuwerten, bevor er die umgebende Anweisung auswertet:
int userAge = 41;
Console.WriteLine("Age of user: " + ++userAge);
Dies hat den gewünschten Effekt, bei dem userAge erhöht wird, bevor die Zeile ausgegeben wird. Nun kann es mit drei + Zeichen etwas verwirrend aussehen, aber das erste ist für die String-Verkettung, während die letzten beiden der eigentliche Operator sind. Wenn Sie es bevorzugen, können Sie die Inkrement-Anweisung mit Klammern umschließen, um zu verdeutlichen, was zusammen gehört:
Console.WriteLine("Age of user: " + (++userAge));
Das liegt ganz bei Ihnen - es funktioniert genauso!
Und natürlich können Sie den Dekrementierungsoperator genauso verwenden, wie oben dargestellt. Hier ist die Postfix-Version:
int userAge = 41;
Console.WriteLine("Age of user: " + (userAge--));
Und die Präfix-Version:
int userAge = 41;
Console.WriteLine("Age of user: " + (--userAge));
Zusammenfassung:
Also, das waren die Inkrement- und Dekrementoperatoren. Sie eignen sich hervorragend für einen sehr speziellen Anwendungsfall: Wenn Sie einen Wert um 1 erhöhen oder verringern möchten. Im nächsten Kapitel werden wir uns den Additions-Zuweisungsoperator ansehen, der diesem sehr ähnlich sieht, aber einen etwas breiteren Nutzen hat.
Wie bei einigen anderen C# -Operatoren fällt auch dieser unter den Begriff "syntaktischer Zucker" - die gleiche Aufgabe kann ohne diesen speziellen Operator ausgeführt werden, aber mit ihm wird Ihr Code kürzer. Ob es lesbarer wird, ist sehr subjektiv - manche Leute mögen ihn, während andere das Gefühl haben, dass ihr Code ohne ihnleichter zu lesen und zu verstehen ist. Es liegt also wirklich an Ihnen!