- 聲明兩個變量: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