ref 參數
- 能夠將一個變量帶入一個方法中進行改變,改變完成後,再將改變後的值帶出方法。
- ref參數要求在方法外必須為其賦值,而方法可以不賦值。
ref 的好處就是,不用再寫返回值了
它能夠把一個變量以參數的型式傳遞給一個方法, 在一個方法中進行改變,
改變完成後,再把這個值自動的,就是改變後的值自動的給我帶出來。
在一個方法裡面改變這個變數,方法外面這個變數也跟著改變
舉例:在參數前加ref即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//Call ref參數的調薪方法
int salary = 50000; //salary的值會帶入ref參數方法裡面
SalaryIncrease(ref salary); //call ref參數的調薪方法
Console.WriteLine(salary); //輸出55000
Console.ReadKey();
//ref參數的調薪/降薪方法
//調薪
static void SalaryIncrease(ref int salary) {
salary += 5000;
}
//降薪
static void SalaryCut(ref int salary) {
salary -= 5000;
}
練習:使用方法來交換兩個int類型的變量
第一種方式
使用第三方變量
1
2
3
4
5
6
int n1 = 10;
int n2 = 20;
int temp = n1;
n1 = n2;
n2 = n1;
第二種方式
不能使用第三方變數
1
2
3
n1 = n1 - n2; //n1=-10 n2=20
n2 = n1 + n2; //n1=-10 n2=10
n1 = n2 - n1; //n1= 20 n2=10
理解後,練習封裝到方法中
使用第三方變量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int x = 10;
int y = 20;
Test(ref x, ref y);//調用 ref參數的方法
Console.WriteLine(x);
Console.WriteLine(y);
Console.ReadKey();
//ref參數的方法
static void Test(ref int n1,ref int n2)
{
int temp = n1;
n1 = n2;
n2 = temp;
}
不能使用第三方變量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int x = 10;
int y = 20;
Test(ref x, ref y);//調用 ref參數的方法
Console.WriteLine(x);
Console.WriteLine(y);
Console.ReadKey();
//ref參數的方法
static void Test(ref int n1,ref int n2)
{
n1 = n1 - n2;
n2 = n1 + n2;
n1 = n2 - n1;
}