Kann jemand bitte erklären, warum der C# ++ Operator verschiedene Ausgänge basierend auf den zugewiesenen Variablen bietet. https://msdn.microsoft.com/en-us/library/36x43w8w.aspxUnäre Präfix Erhöhung ++ Operator Verschiedene Ausgänge
int x = 0;
int y = x++;
Console.WriteLine($"x: {x}");
Console.WriteLine($"y: {y}");
/*Prints
* x: 1
* y: 0
*/
Mein Verständnis ist y
zu x
gesetzt wird, die (0), dann nach der Zuweisung von y
; x
wird um 1 inkrementiert;
int x = 0;
x = x++;
Console.WriteLine($"x: {x}");
/*Prints
* x: 0
*/
Wie kommt es, dass die gleiche Logik hier nicht gilt? x
sollte x
eingestellt werden, die 0, dann ist nach der Zuweisung Inkrement x
um 1 und Druck 1 statt 0
gleiche für dieses Beispiel
int x = 0;
x += x++;
Console.WriteLine($"x: {x}");
/*Prints
* x: 0
*/
Ein weiteres Beispiel
int x = 0;
x += x++ + x++;
Console.WriteLine($"x: {x}");
/*Prints
* x: 1
*/
scheint dass es im Hintergrund eine andere Logik gibt, die ich nicht verstehe.
Detaillierte Beschreibung der Funktionsweise von ++ Operator (sowohl Präfix und Postfix) in C# ist hier: http: // stackoverflow.com/a/3346729/1286670 –
@Steve Ich bin mir nicht sicher, ob es beabsichtigt war oder nicht, aber Sie änderten _ "Unary Prefix Increment' ++ 'Operator" _ zu _ "Unary Prefix Increment' + 'Operator" _ - nein so etwas – MickyD
Ich glaube, Eric Lipperts Antwort von @ Ňuf gefunden deckt alle Anliegen dieses Beitrags. Wenn noch etwas fehlt - bitte [bearbeiten] Sie den Beitrag und klären Sie, welche Teile separat erklärt werden müssen. Bitte stellen Sie sicher, Schritt für Schritt Argumentation zu schreiben, wenn Sie eine Bearbeitung vornehmen - Sie sollten höchstens zusätzliche Schritte zusätzlich zu 5 Eric für ++ Operation bereitgestellt haben, um die gesamte 'x = x ++' Anweisung abzudecken. –