第6天:方法與函數基礎
課程簡介
今天,我們將學習方法與函數的基礎概念。在 C# 中,方法是重複使用的程式碼段,可以讓我們更有效率地組織、管理和執行程式碼。方法可以接受參數,執行特定操作並回傳結果。透過方法,我們能讓程式碼更具結構性並增強其重複使用性。
學習目標
- 瞭解方法的基本結構
- 學會宣告和呼叫方法
- 學習傳遞參數給方法
- 了解方法的回傳值
課程內容
1. 方法的基本結構
在 C# 中,方法是由一段有名稱的程式碼構成,通常包含以下幾個部分:
- 存取修飾詞:例如
public
、private
等,用於控制方法的可見性。 - 回傳類型:方法執行後的回傳值類型。若無回傳值則使用
void
。 - 方法名稱:方法的名稱,用來呼叫該方法。
- 參數列表:傳遞給方法的參數,放在括號中並以逗號分隔。
- 方法主體:包含要執行的程式碼。
語法範例:
1
2
3
4
存取修飾詞 回傳類型 方法名稱(參數類型 參數名稱, ...)
{
// 方法主體
}
2. 宣告與呼叫方法
宣告方法
- 宣告方法時,需指定方法的存取修飾詞、回傳類型、名稱和參數列表。
範例:
1
2
3
4
public void SayHello()
{
Console.WriteLine("Hello, World!");
}
呼叫方法
- 要使用方法,需在主程式或其他方法中呼叫該方法。
- 呼叫方法時,使用方法名稱,並以括號包住參數(若有的話)。
範例:
1
SayHello();
3. 方法的參數
方法可以接受一或多個參數,這些參數允許在方法內使用傳入的值。傳遞參數時,需要在方法宣告時定義參數類型和名稱。
有參數的方法
- 宣告時指定參數的資料型別和名稱,呼叫時則需傳遞對應的資料。
範例:
1
2
3
4
5
6
7
public void Greet(string name)
{
Console.WriteLine("Hello, " + name + "!");
}
// 呼叫方法
Greet("Alice");
此範例中的 name
參數接受呼叫時傳入的字串 "Alice"
,並在方法內使用。
4. 方法的回傳值
方法可以回傳值。若要回傳某類型的值,則需在方法宣告中指定回傳類型,並使用 return
關鍵字返回資料。若方法不回傳值,則使用 void
。
有回傳值的方法
- 在方法內使用
return
關鍵字,並指定要回傳的值。
範例:
1
2
3
4
5
6
7
8
public int Add(int a, int b)
{
return a + b;
}
// 呼叫方法並接收回傳值
int result = Add(5, 3);
Console.WriteLine("結果是:" + result);
此範例中的 Add
方法回傳兩個整數的和。
5. 傳值參數與傳址參數
在 C# 中,方法的參數傳遞分為「傳值」和「傳址」。
傳值參數
- 預設情況下,參數以「傳值」方式傳遞,方法內的變數變更不會影響到呼叫者的變數。
範例:
1
2
3
4
5
6
7
8
public void Square(int number)
{
number = number * number;
}
int myNumber = 5;
Square(myNumber);
Console.WriteLine(myNumber); // 結果還是 5
傳址參數
- 使用
ref
或out
關鍵字來傳遞參數的參照(記憶體地址),這樣方法內的變更會影響呼叫者的變數。
範例:
1
2
3
4
5
6
7
8
public void Square(ref int number)
{
number = number * number;
}
int myNumber = 5;
Square(ref myNumber);
Console.WriteLine(myNumber); // 結果為 25
實作練習
- 建立新方法並呼叫
- 開啟專案的
Program.cs
檔案,並加入以下程式碼:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
using System; class Program { static void Main(string[] args) { SayHello(); string name = "Alice"; Greet(name); int result = Add(5, 3); Console.WriteLine("Add 方法的結果是:" + result); int number = 10; Square(ref number); Console.WriteLine("Square 方法的結果是:" + number); } // 宣告方法 public static void SayHello() { Console.WriteLine("Hello, World!"); } public static void Greet(string name) { Console.WriteLine("Hello, " + name + "!"); } public static int Add(int a, int b) { return a + b; } public static void Square(ref int number) { number = number * number; } }
- 開啟專案的
- 執行程式
- 在終端中使用以下指令執行程式:
1
dotnet run
- 視察輸出結果,觀察各方法的輸出及其效果。
- 在終端中使用以下指令執行程式:
教學重點
- 方法的基本結構及其用途。
- 宣告和呼叫方法的基本語法。
- 方法參數的傳遞方式(傳值與傳址)。
- 方法的回傳值處理方式。
在接下來的課程中,我們將更深入地學習物件導向程式設計的概念,並運用方法來建立更具結構性和彈性的程式!
本文章以 CC BY 4.0 授權