C# 如何在不使用临时变量的情况下交换两个整数值?

C# 如何在不使用临时变量的情况下交换两个整数值?,c#,C#,O/p: 交换前。 A值为:5 A值为:7 交换后。 A值为:7 A值为:5 那么,如何在不使用临时变量的情况下交换两个整数值呢?试试: // Swapping value between two integer without using temp variable. int a = 5; int b = 7; Console.WriteLine("Before Swap."); Console.WriteLine("value

O/p: 交换前。 A值为:5 A值为:7

交换后。 A值为:7 A值为:5

那么,如何在不使用临时变量的情况下交换两个整数值呢?

试试:

// Swapping value between two integer without using temp variable.
        int a = 5;
        int b = 7;

        Console.WriteLine("Before Swap.");
        Console.WriteLine("value of A is: {0}", a);
        Console.WriteLine("value of B is: {0}", b);

        Console.ReadLine();

您需要使用XOR运算符:

a = a + b;
b = a - b;
a = a - b;
这是因为应用两次具有相同值的异或会取消操作:

a = a ^ b;
b = a ^ b;
a = a ^ b;
第一种方法

a ^ b ^ b => a
第二种方法

a = a + b;
b = a - b;
a = a - b;

您正在发布一个脑筋急转弯,但这并不是一个合适的地方。我甚至认为我在编辑之前看到了解决方案。。。也许你应该发到puzzling.stackexchange.com?
a = a + b;
b = a - b;
a = a - b;
a ^= b;
b ^= a;
a ^= b;