C# - 方法:初學者指南
你好,有志於成為程序員的你!今天,我們將要深入探讨 C# 程序設計中最基礎的概念之一:方法。別擔心如果你從未寫過一行代碼——我會一步一步地引導你,就像我這些年來為無數學生所做的那樣。所以,拿起你喜歡的飲料,讓我們一起踏上這個令人興奮的冒險吧!
方法是什麼?
在我們深入細節之前,讓我們先了解方法是什麼。可以把方法看作是編程中的動詞——它們是程序可以執行的動作。就像在真實生活中,你可能會有像「泡咖啡」、「開車」或「寫電子郵件」這樣的動作,在編程中,我們也有執行特定任務的方法。
在 C# 中定義方法
現在,讓我們學習如何創建這些充滿動作代碼的明星!
方法的基本結構
以下是 C# 中方法的基本結構:
訪問修飾符 返回類型 方法名稱(參數列表)
{
// 方法體
// 要執行的代碼
}
別讓這個嚇到你!讓我們分解它:
-
訪問修飾符
:這決定了誰可以使用這個方法(我們稍後會詳細介紹)。 -
返回類型
:這個方法給回什麼樣的結果?它可以是數字、文字或者沒有(void)。 -
方法名稱
:這是我們稱呼我們方法的方式——讓它具有描述性! -
參數列表
:這是我們方法需要執行任務的輸入。
範例
讓我們創建一個簡單的方法來問候某人:
public static void SayHello(string name)
{
Console.WriteLine($"Hello, {name}! Welcome to the world of C#!");
}
讓我們剖析這個範例:
-
public
:這個方法可以在我們程序的任何地方使用。 -
static
:我們不需要創建一個物件來使用這個方法(如果你現在還不明白這個,別擔心)。 -
void
:這個方法不返回任何值。 -
SayHello
:我們方法的名稱。 -
(string name)
:這個方法接受一個輸入——一個叫做 'name' 的字符串。
在 C# 中調用方法
創建一個方法很好,但就像烤蛋糕從來不吃一樣!讓我們學習如何使用(或稱為「調用」)我們的方法。
基本方法調用
要使用我們的 `SayHello方法,我們會寫:
SayHello("Alice");
這會輸出:"Hello, Alice! Welcome to the world of C#!"
這不是很棒嗎?我們可以通過更改名字來問候任何人!
有返回值的方法
讓我們創建一個為我們做數學計算的方法:
public static int Add(int a, int b)
{
return a + b;
}
要使用這個方法:
int result = Add(5, 3);
Console.WriteLine($"5 + 3 = {result}");
這會輸出:"5 + 3 = 8"
遞歸方法調用
現在,讓我們進入一些更先進的概念——遞歸方法。這些是調用自身的方法。就像是電影中的「套娃」,但對於代碼來說!
這裡有一個經典的例子——計算階乘:
public static int Factorial(int n)
{
if (n == 0 || n == 1)
{
return 1;
}
else
{
return n * Factorial(n - 1);
}
}
要使用這個方法:
int result = Factorial(5);
Console.WriteLine($"Factorial of 5 is {result}");
這會輸出:"Factorial of 5 is 120"
這個方法會一直調用自己,直到達到 1 或 0 為止。就像一個計算的俄羅斯套娃!
向方法傳遞參數
我們已經看到了傳遞參數的例子,但讓我們更深入地了解一下。
值參數
當你傳遞一個值類型(如 int、float 等)時,C# 會創建該值的副本。方法內對參數的更改不會影響原始值。
public static void DoubleValue(int x)
{
x = x * 2;
Console.WriteLine($"Inside method: {x}");
}
// 使用
int num = 5;
DoubleValue(num);
Console.WriteLine($"Outside method: {num}");
這會輸出:
Inside method: 10
Outside method: 5
參考參數
有時候,我們希望方法中的更改會影響原始值。我們使用 ref
關鍵字來做到這一點:
public static void DoubleValueRef(ref int x)
{
x = x * 2;
Console.WriteLine($"Inside method: {x}");
}
// 使用
int num = 5;
DoubleValueRef(ref num);
Console.WriteLine($"Outside method: {num}");
這會輸出:
Inside method: 10
Outside method: 10
方法重載
關於方法的最后一個酷炫特性——我們可以有具有相同名稱的多个方法,只要它們有不同參數列表即可。這稱為方法重載。
public static int Add(int a, int b)
{
return a + b;
}
public static double Add(double a, double b)
{
return a + b;
}
// 使用
Console.WriteLine(Add(5, 3)); // 使用 int 版本
Console.WriteLine(Add(5.5, 3.2)); // 使用 double 版本
方法類型總結
這裡是一個我們已經討論過的不同類型方法的快速參考表:
方法類型 | 描述 | 範例 |
---|---|---|
無返回值方法 | 執行動作但不返回值 | void SayHello(string name) |
有返回值方法 | 執行動作並返回值 | int Add(int a, int b) |
遞歸方法 | 調用自身來解決問題 | int Factorial(int n) |
重載方法 | 多個方法具有相同名稱但參數不同 |
int Add(int a, int b) 和 double Add(double a, double b)
|
以上就是 C# 方法的世界!記住,熟能生巧,所以不要害怕嘗試這些概念。創建你自己的方法,混合匹配參數,看看你能建造什麼。在你還沒有意識到之前,你就會輕鬆地編寫複雜的程序。未來的開發者,快樂編程!
Credits: Image by storyset