Hàm (Function) trong C# – Phần 3

Đăng ngày: 20/06/2026 • Tác giả: Quản trị viên
Hàm (Function) trong C# – Phần 3

Hàm (Function) trong C# – Phần 3

1. Hàm là gì?

Hàm (function) trong C# là một khối mã có thể tái sử dụng, giúp chia nhỏ chương trình thành các phần nhỏ để dễ quản lý và bảo trì.

Lợi ích của việc sử dụng hàm:

✅ Tái sử dụng mã – Viết một lần, dùng nhiều lần.
✅ Giảm trùng lặp – Tránh viết lại cùng một đoạn mã nhiều lần.
✅ Dễ đọc, dễ bảo trì – Giúp chương trình dễ hiểu hơn.

2. Cú pháp khai báo hàm trong C#

Một hàm trong C# có cú pháp như sau:

<kiểu_dữ_liệu_trả_về> TênHàm(<tham_số>)
{
    // Khối lệnh của hàm
    return giá_trị;  // (Nếu có kiểu trả về)
}

🔹 Giải thích:

  • <kiểu_dữ_liệu_trả_về>: Kiểu dữ liệu mà hàm trả về (int, double, string, void, …).
  • TênHàm: Tên của hàm (nên đặt theo quy tắc PascalCase).
  • <tham_số>: Danh sách tham số (có thể có hoặc không).
  • return: Trả về giá trị (nếu không có, dùng void).

3. Hàm không có tham số và không trả về giá trị

Hàm không nhận tham số và không trả về giá trị thì sử dụng void.

Ví dụ: Hàm hiển thị thông báo

using System;

class Program
{
    static void ChaoMung()
    {
        Console.WriteLine("Xin chào! Chào mừng bạn đến với lập trình C#.");
    }

    static void Main()
    {
        ChaoMung(); // Gọi hàm
    }
}

⏳ Kết quả:

Xin chào! Chào mừng bạn đến với lập trình C#.

4. Hàm có tham số nhưng không trả về giá trị

Hàm có thể nhận tham số để xử lý dữ liệu.

Ví dụ: Hàm tính tổng hai số

using System;

class Program
{
    static void TongHaiSo(int a, int b)
    {
        int tong = a + b;
        Console.WriteLine("Tổng hai số là: " + tong);
    }

    static void Main()
    {
        TongHaiSo(5, 7); // Gọi hàm với tham số 5 và 7
    }
}

⏳ Kết quả:

Tổng hai số là: 12

5. Hàm có trả về giá trị

Hàm có thể trả về kết quả bằng từ khóa return.

Ví dụ: Hàm tính bình phương của một số

using System;

class Program
{
    static int BinhPhuong(int so)
    {
        return so * so;
    }

    static void Main()
    {
        int ketQua = BinhPhuong(6);
        Console.WriteLine("Bình phương của 6 là: " + ketQua);
    }
}

⏳ Kết quả:

Bình phương của 6 là: 36

6. Hàm có nhiều tham số và trả về giá trị

Hàm có thể có nhiều tham số và trả về kết quả.

Ví dụ: Hàm tính tổng hai số và trả về kết quả

using System;

class Program
{
    static int Tong(int a, int b)
    {
        return a + b;
    }

    static void Main()
    {
        int ketQua = Tong(10, 20);
        Console.WriteLine("Tổng của 10 và 20 là: " + ketQua);
    }
}

⏳ Kết quả:

Tổng của 10 và 20 là: 30

7. Hàm với tham số mặc định

Tham số mặc định giúp đặt giá trị mặc định nếu không truyền vào.

Ví dụ: Hàm tính diện tích hình chữ nhật (chiều rộng mặc định là 5)

using System;

class Program
{
    static int DienTich(int dai, int rong = 5)
    {
        return dai * rong;
    }

    static void Main()
    {
        Console.WriteLine("Diện tích (10,5): " + DienTich(10)); // Mặc định rộng = 5
        Console.WriteLine("Diện tích (10,8): " + DienTich(10, 8)); // Truyền cả hai giá trị
    }
}

⏳ Kết quả:

Diện tích (10,5): 50  
Diện tích (10,8): 80  

8. Hàm nạp chồng (Function Overloading)

C# cho phép nhiều hàm có cùng tên nhưng khác số lượng hoặc kiểu dữ liệu tham số.

Ví dụ: Hàm tính tổng có nạp chồng

using System;

class Program
{
    static int Tong(int a, int b)
    {
        return a + b;
    }

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

    static void Main()
    {
        Console.WriteLine("Tổng số nguyên: " + Tong(5, 10));
        Console.WriteLine("Tổng số thực: " + Tong(5.5, 2.3));
    }
}

⏳ Kết quả:

Tổng số nguyên: 15  
Tổng số thực: 7.8  

9. Đệ quy trong C# (Recursion)

Hàm có thể tự gọi lại chính nó (đệ quy), thường dùng để giải quyết bài toán chia nhỏ.

Ví dụ: Hàm tính giai thừa bằng đệ quy

using System;

class Program
{
    static int GiaiThua(int n)
    {
        if (n == 0) return 1;
        return n * GiaiThua(n - 1);
    }

    static void Main()
    {
        Console.WriteLine("Giai thừa của 5 là: " + GiaiThua(5));
    }
}

⏳ Kết quả:

Giai thừa của 5 là: 120  

10. Tóm tắt bài học

✅ Hàm không trả về (void) – Dùng khi không cần kết quả.
✅ Hàm có trả về (return) – Dùng khi cần kết quả tính toán.
✅ Tham số mặc định – Giúp linh hoạt hơn khi gọi hàm.
✅ Nạp chồng hàm – Cho phép nhiều hàm cùng tên với tham số khác nhau.
✅ Đệ quy – Dùng khi bài toán cần chia nhỏ lặp lại.

💡 Bài tiếp theo:
👉 Mảng (Array) trong C# – Phần 4 🚀

 

Bài viết liên quan