C# Swapping ohne Temp var ?
Hallo,
wenn ich 2 variablen austauschen möchte benötige ich eine 3 variabel, beispiel:
var blub = 1;
var blub2 = 2;
var temp = blub;
blub = blub2;
blub2 = temp;
Allerdings gibt es die Tuple in C# womit ich sowas machen kann:
(blub, blub2) = (blub2, blub);
Was genau passiert den im Hintergrund wenn man die Tulpe variante verwendet, wird eine 3 Variabel erstellt ?
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, programmieren, C Sharp
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
Dank dir.