Home [C# 筆記] ref 參數
Post
Cancel

[C# 筆記] ref 參數

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;
}
This post is licensed under CC BY 4.0 by the author.