交换两个数字而不使用另一个变量

3 c#

交换两个变量而不使用临时变量if

int a=4; 
int b=3;
Run Code Online (Sandbox Code Playgroud)

我需要交换这些变量并获得输出为a = 3和b = 4而不使用C#中的另一个变量

Mic*_*kyD 7

使用Interlocked.Exchange()

int a = 4;
int b = 3;

b = Interlocked.Exchange(ref a, b);
Run Code Online (Sandbox Code Playgroud)

告诉我更多

来自MSDN:

将32位有符号整数设置为指定值作为原子操作,然后返回原始值

编辑:关于上面的Esoteric的精细链接(谢谢),甚至有一个Interlocked.Exchange()double也可以帮助那里.


Ath*_*hul 5

使用以下概念

int a=4 ;
int b=3 ;

a=a+b ;  //  a=7
b=a-b ;  //  b=7-3=4
a=a-b ;  //  c=7-4=3
Run Code Online (Sandbox Code Playgroud)