Chuyển tới nội dung chính

1.5 — 4. Hàm (Functions / Methods)

Mục tiêu bài học

  • Nắm được ý chính của bài và mối liên hệ với module.
  • Áp dụng được kiến thức vào bối cảnh CRM/.NET backend.
  • Sẵn sàng chuyển sang bài kế tiếp với nền tảng chắc chắn.

Nội dung bài học

1.5.1 — Tại sao cần hàm?

Hàm là cách bạn đặt tên cho một khối logic để có thể tái sử dụng. Thay vì viết cùng đoạn code ở nhiều chỗ, bạn đóng gói nó vào một hàm, rồi gọi bất cứ khi nào cần.

1.5.2 — Cú pháp cơ bản

// Hàm không trả về giá trị (void)
void InThongTinKhach(string ten, int diem)
{
Console.WriteLine($"Khách: {ten} | Điểm: {diem}");
}

// Hàm có giá trị trả về
string XacDinhHangKhach(int diem)
{
if (diem >= 500) return "VIP";
if (diem >= 200) return "Bạc";
return "Thường";
}

// Gọi hàm
InThongTinKhach("Lê Văn C", 320);
string hang = XacDinhHangKhach(320);
Console.WriteLine($"Hạng: {hang}"); // Output: Hạng: Bạc

1.5.3 — Tham số mặc định (default parameters)

// Tham số có giá trị mặc định
string TaoGreeting(string ten, string loai = "Thường")
{
return loai == "VIP"
? $"Xin chào quý khách VIP {ten}! Chúng tôi rất trân trọng bạn."
: $"Xin chào {ten}!";
}

Console.WriteLine(TaoGreeting("An")); // Dùng mặc định
Console.WriteLine(TaoGreeting("Bình", "VIP")); // Truyền tường minh

1.5.4 — Quy tắc đặt tên hàm

  • Dùng PascalCase cho tên hàm trong C#: TinhTongDiem, KiemTraVip
  • Bắt đầu bằng động từ: Get, Calculate, Check, Send, Create
  • Tên hàm mô tả chính xác việc hàm làm — đừng viết XuLy() hay HamMoi()
// Tốt
decimal TinhGiaTriDonHang(List<decimal> danhSachGia) { ... }
bool KiemTraEmailHopLe(string email) { ... }

// Không tốt — tên quá mơ hồ
decimal Xu_Ly(List<decimal> x) { ... }
bool Check(string s) { ... }

Bài tập áp dụng

  1. Tóm tắt bài học bằng ngôn ngữ của bạn.
  2. Liên hệ nội dung với một tình huống thực tế trong dự án.
  3. Đề xuất một cải tiến cụ thể sau khi học bài này.

Tự kiểm tra

  • Bạn có thể giải thích lại nội dung chính trong 2 phút không?
  • Bạn có ví dụ áp dụng thực tế chưa?
  • Bạn biết bước tiếp theo cần học/triển khai là gì không?

Kết luận

Hoàn thành bài này giúp bạn có góc nhìn đầy đủ hơn trước khi đi tiếp trong module.

Điều hướng