C# - Phương thức: Hướng dẫn cho người mới bắt đầu

Xin chào các bạn đang học lập trình! Hôm nay, chúng ta sẽ cùng nhau khám phá một trong những khái niệm cơ bản nhất trong lập trình C#: Phương thức (Methods). Đừng lo lắng nếu bạn chưa từng viết một dòng mã trước đây - tôi sẽ dẫn dắt bạn từng bước trong hành trình này, giống như tôi đã làm cho hàng trăm học sinh trong những năm dạy học của mình. Nào, hãy lấy một ly đồ uống yêu thích của bạn và cùng nhau bắt đầu hành trình thú vị này nhé!

C# -  Methods

Phương thức là gì?

Trước khi chúng ta đi vào chi tiết, hãy hiểu phương thức là gì. Hãy tưởng tượng phương thức như các động từ trong lập trình - chúng là các hành động mà chương trình của bạn có thể thực hiện. Giống như trong cuộc sống thực tế, bạn có các hành động như "pha cà phê", "lái xe", hoặc "viết email", trong lập trình, chúng ta có các phương thức thực hiện các nhiệm vụ cụ thể.

Định nghĩa phương thức trong C

Bây giờ, hãy học cách tạo ra những ngôi sao hành động trong mã của chúng ta!

Cấu trúc cơ bản của phương thức

Dưới đây là cấu trúc cơ bản của một phương thức trong C#:

AccessModifier ReturnType MethodName(ParameterList)
{
// Thân phương thức
// Mã cần thực thi
}

Đừng để điều này làm bạn lo lắng! Hãy phân tích nó:

  1. AccessModifier: Điều này xác định ai có thể sử dụng phương thức (chúng ta sẽ覆盖 chi tiết này sau).
  2. ReturnType: Phương thức này trả về kết quả loại nào? Nó có thể là một số, văn bản, hoặc không có gì (void).
  3. MethodName: Đây là tên của phương thức của chúng ta - hãy làm cho nó mô tả!
  4. ParameterList: Đây là các đầu vào mà phương thức cần để thực hiện công việc của nó.

Ví dụ

Hãy tạo một phương thức đơn giản chào đón ai đó:

public static void SayHello(string name)
{
Console.WriteLine($"Xin chào, {name}! Chào mừng bạn đến với thế giới C#!");
}

Hãy phân tích ví dụ này:

  • public: Phương thức này có thể được sử dụng ở bất kỳ đâu trong chương trình của chúng ta.
  • static: Chúng ta không cần tạo một đối tượng để sử dụng phương thức này (đừng lo lắng nếu điều này chưa rõ ràng).
  • void: Phương thức này không trả về giá trị nào.
  • SayHello: Tên của phương thức của chúng ta.
  • (string name): Phương thức này nhận một đầu vào - một chuỗi được gọi là 'name'.

Gọi phương thức trong C

Tạo một phương thức là rất tốt, nhưng nó giống như nướng bánh mà không ăn! Hãy học cách sử dụng (hoặc "gọi") phương thức của chúng ta.

Gọi phương thức cơ bản

Để sử dụng phương thức SayHello, chúng ta sẽ viết:

SayHello("Alice");

Điều này sẽ输出: "Xin chào, Alice! Chào mừng bạn đến với thế giới C#!"

Thật tuyệt vời phải không? Chúng ta có thể chào đón bất kỳ ai chỉ cần thay đổi tên!

Phương thức với giá trị trả về

Hãy tạo một phương thức thực hiện toán học cho chúng ta:

public static int Add(int a, int b)
{
return a + b;
}

Để sử dụng phương thức này:

int result = Add(5, 3);
Console.WriteLine($"5 + 3 = {result}");

Điều này sẽ输出: "5 + 3 = 8"

Gọi phương thức đệ quy

Bây giờ, hãy bước vào một điều gì đó phức tạp hơn một chút - phương thức đệ quy. Đây là các phương thức gọi chính nó. Nó giống như inception, nhưng cho mã!

Dưới đây là một ví dụ kinh điển - tính giai thừa:

public static int Factorial(int n)
{
if (n == 0 || n == 1)
{
return 1;
}
else
{
return n * Factorial(n - 1);
}
}

Để sử dụng phương thức này:

int result = Factorial(5);
Console.WriteLine($"Giai thừa của 5 là {result}");

Điều này sẽ输出: "Giai thừa của 5 là 120"

Phương thức này liên tục gọi chính nó với một số nhỏ hơn cho đến khi nó đạt 1 hoặc 0. Nó giống như mộtRussian nesting doll của các phép toán!

Truyền tham số cho phương thức

Chúng ta đã thấy một số ví dụ về việc truyền tham số, nhưng hãy đi sâu hơn một chút.

Tham số giá trị

Khi bạn truyền một kiểu giá trị (như int, float, v.v.), C# tạo một bản sao của giá trị đó. Các thay đổi đối với tham số trong phương thức không ảnh hưởng đến giá trị gốc.

public static void DoubleValue(int x)
{
x = x * 2;
Console.WriteLine($"Trong phương thức: {x}");
}

// Sử dụng
int num = 5;
DoubleValue(num);
Console.WriteLine($"Ngoài phương thức: {num}");

Điều này sẽ输出:

Trong phương thức: 10
Ngoài phương thức: 5

Tham số tham chiếu

Đôi khi, chúng ta muốn các thay đổi trong phương thức ảnh hưởng đến giá trị gốc. Chúng ta sử dụng từ khóa ref cho điều này:

public static void DoubleValueRef(ref int x)
{
x = x * 2;
Console.WriteLine($"Trong phương thức: {x}");
}

// Sử dụng
int num = 5;
DoubleValueRef(ref num);
Console.WriteLine($"Ngoài phương thức: {num}");

Điều này sẽ输出:

Trong phương thức: 10
Ngoài phương thức: 10

overloaded Method

Một điều thú vị cuối cùng về phương thức - chúng ta có thể có nhiều phương thức với cùng một tên, miễn là chúng có danh sách tham số khác nhau. Điều này được gọi là overloaded method.

public static int Add(int a, int b)
{
return a + b;
}

public static double Add(double a, double b)
{
return a + b;
}

// Sử dụng
Console.WriteLine(Add(5, 3));        // Sử dụng phiên bản int
Console.WriteLine(Add(5.5, 3.2));    // Sử dụng phiên bản double

Tóm tắt các loại phương thức

Dưới đây là bảng tham khảo nhanh các loại phương thức chúng ta đã覆盖:

Loại phương thức Mô tả Ví dụ
Phương thức Void Thực hiện hành động nhưng không trả về giá trị void SayHello(string name)
Phương thức trả về giá trị Thực hiện hành động và trả về giá trị int Add(int a, int b)
Phương thức đệ quy Gọi chính nó để giải quyết vấn đề int Factorial(int n)
Phương thức overloaded Nhiều phương thức với cùng tên nhưng khác tham số int Add(int a, int b)double Add(double a, double b)

Và thế là bạn đã迈出第一步进入 C# 方法的世界。Hãy nhớ, thực hành là chìa khóa của sự hoàn hảo, vì vậy đừng ngần ngại thử nghiệm với các khái niệm này. Tạo ra các phương thức của riêng bạn, kết hợp các tham số, và xem bạn có thể xây dựng được gì. Trước khi bạn biết, bạn sẽ dễ dàng tạo ra các chương trình phức tạp. Chúc may mắn trong việc lập trình, các nhà phát triển tương lai!

Credits: Image by storyset