- 声明两个变量:int n1 = 10, n2 = 20;要求将两个变量交换,最后输出n1为20,n2为10。扩展(*):不使用第三个变量如何交换?
int n1 = 10;
int n2 = 20;
int temp;
temp = n1;
n1 = n2;
n2 = temp;
▲ 借用中间量
int n1 = 10;
int n2 = 20;
n1 = n1 + n2;
n2 = n1 - n2;
n1 = n1 - n2;
▲ 不用中间量
- 用方法来实现:将上题封装一个方法来做,方法有两个参数分别为num1,num2,将num1与num2交换。提示:方法有两个参数n1,n2,在方法中将n1与n2进行交换,使用ref。(*)
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;
}
运行结果:
交换前:n1 = 10, n2 = 20
交换前:n1 = 20, n2 = 10
参考:
1.link-01