C# Swapping ohne Temp var ?

1 Antwort

Das Tuple ist ein Struct, genannt "ValueTuple", davon gibt's einige generische Varianten. So ein Struct braucht man, da man die Tuples ja auch außerhalb einer Methode nutzen kann.

Hier wird das alles aber weg optimiert und der Compiler macht das gleiche daraus, wie Du, nur mit einer Variable mehr:

var blub = 1;
var blub2 = 2;

var temp = blub;
blub = blub2;
blub2 = temp;

(blub, blub2) = (blub2, blub);

Wird zu:

int num = 1;
int num2 = 2;

int num3 = num;
num = num2;
num2 = num3;

int num4 = num2;
int num5 = num;
num = num4;
num2 = num5;
Woher ich das weiß:Berufserfahrung