Feedback

Variablenwerte tauschen

Sprache: C#

So ziemlich jeder hat schon mal eine Swap-Methode zum tauschen von Variablen-Werten geschrieben. Ab C# 7.0 geht das nun dank der Tupel noch etwas einfacher. Dieses Snippet zeigt beide möglichen Wege.
private static void Main()
{
    var a = 1;
    var b = 2;

    Console.WriteLine($"a={a}, b={b}");

    // C# 6.0 and prior
    GenericSwap(ref a, ref b);

    Console.WriteLine($"a={a}, b={b}");

    // C# 7.0 and later
    (a, b) = (b, a);

    Console.WriteLine($"a={a}, b={b}");

    Console.ReadKey();
}

private static void GenericSwap<T>(ref T a, ref T b)
{
    var tmp = a;
    a = b;
    b = tmp;
}
private static void Main()
{
    var a = 1;
    var b = 2;

    Console.WriteLine($"a={a}, b={b}");

    // C# 6.0 and prior
    GenericSwap(ref a, ref b);

    Console.WriteLine($"a={a}, b={b}");

    // C# 7.0 and later
    (a, b) = (b, a);

    Console.WriteLine($"a={a}, b={b}");

    Console.ReadKey();
}

private static void GenericSwap<T>(ref T a, ref T b)
{
    var tmp = a;
    a = b;
    b = tmp;
}

2 Kommentare