class Program
{
static void Main(string[] args)
{
int a = 4, b = 10;
Exchange(ref a,ref b);
Console.WriteLine($"交换之前a={a},b={b},Exchange方法交换后a={a},b={b}");
Exchange1(ref a, ref b);
Console.WriteLine($"交换之前a={a},b={b},Exchange1方法交换后a={a},b={b}");
Exchange2(ref a, ref b);
Console.WriteLine($"交换之前a={a},b={b},Exchange2方法交换后a={a},b={b}");
}
//此方法只在整数中使用,后面的两种方法可以改成泛型
static void Exchange(ref int a,ref int b)
{
a = a + b - (b = a);
}
static void Exchange1(ref int a, ref int b)
{
(a, b) = (b, a);
}
static void Exchange3(ref int a, ref int b)
{
a=a^b;
b=a^b;
a=a^b;
}
Exchange3方法是异或运算符,推荐使用这个,上面是上面意思呢?有两个定义,1.0^N=N;2.N^N=N;上面第一步,a=a^b,b=b;第二步,a=a^b,b=a^b^b=a;第三步,a=a^b^a=0^b=b,b=a
static void Exchange2(ref int a, ref int b)
{
int c;
c = a;
a = b;
b = c;
}
}
//封装成泛型
public void ExChange<T>(ref T a,ref T b)
{
T c;
c = a;
a = b;
b = c;
}
public void ExChange2<T>(ref T a, ref T b)
{
(a, b) = (b, a);
}
//调用
ExchangeClass ex = new ExchangeClass();
string h = "sad", j = "jk";
ex.ExChange2<string>(ref h, ref j);
Console.WriteLine($"交换之前h={h},j={j},Exchange2方法交换后h={h},j={j}");
本文通过C#代码展示了三种不同的交换变量值的方法:异或运算、元组赋值和传统临时变量法。详细解释了每种方法的工作原理,并推荐使用异或运算进行高效交换。同时,还探讨了如何将交换方法封装为泛型,以实现不同类型的变量交换。
2万+

被折叠的 条评论
为什么被折叠?



