C# 交换两个变量值

  1. 声明两个变量:int n1 = 10, n2 = 20;要求将两个变量交换,最后输出n1为20,n2为10。扩展(*):不使用第三个变量如何交换?
1
2
3
4
5
6
7
int n1 = 10;
int n2 = 20;
int temp;

temp = n1;
n1 = n2;
n2 = temp;
▲ 借用中间量
1
2
3
4
5
6
7
int n1 = 10;
int n2 = 20;


n1 = n1 + n2;
n2 = n1 - n2;
n1 = n1 - n2;
▲ 不用中间量
  1. 用方法来实现:将上题封装一个方法来做,方法有两个参数分别为num1,num2,将num1与num2交换。提示:方法有两个参数n1,n2,在方法中将n1与n2进行交换,使用ref。(*)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
static void Main(string[] args)
{
int n1 = 10;
int n2 = 20;

Console.WriteLine("交换前:n1 = {0}, n2 = {1}", n1, n2);


SwapNum<int>(ref n1, ref n2);

Console.WriteLine("交换前:n1 = {0}, n2 = {1}", n1, n2);
Console.ReadKey();
}

static void SwapNum<T> (ref T a, ref T b)
{
T temp;

temp = a;
a = b;
b = temp;
}

运行结果:

1
2
交换前:n1 = 10, n2 = 20
交换前:n1 = 20, n2 = 10




参考:
1.link-01

感谢支持!