C# - 方法:初學者指南

你好,有志於成為程序員的你!今天,我們將要深入探讨 C# 程序設計中最基礎的概念之一:方法。別擔心如果你從未寫過一行代碼——我會一步一步地引導你,就像我這些年來為無數學生所做的那樣。所以,拿起你喜歡的飲料,讓我們一起踏上這個令人興奮的冒險吧!

C# -  Methods

方法是什麼?

在我們深入細節之前,讓我們先了解方法是什麼。可以把方法看作是編程中的動詞——它們是程序可以執行的動作。就像在真實生活中,你可能會有像「泡咖啡」、「開車」或「寫電子郵件」這樣的動作,在編程中,我們也有執行特定任務的方法。

在 C# 中定義方法

現在,讓我們學習如何創建這些充滿動作代碼的明星!

方法的基本結構

以下是 C# 中方法的基本結構:

訪問修飾符 返回類型 方法名稱(參數列表)
{
// 方法體
// 要執行的代碼
}

別讓這個嚇到你!讓我們分解它:

  1. 訪問修飾符:這決定了誰可以使用這個方法(我們稍後會詳細介紹)。
  2. 返回類型:這個方法給回什麼樣的結果?它可以是數字、文字或者沒有(void)。
  3. 方法名稱:這是我們稱呼我們方法的方式——讓它具有描述性!
  4. 參數列表:這是我們方法需要執行任務的輸入。

範例

讓我們創建一個簡單的方法來問候某人:

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