Sử dụng kiểu tập hợp (Enum)
1. Enum là gì?
Enum (viết tắt của Enumeration) trong C# là một kiểu dữ liệu đặc biệt cho phép bạn định nghĩa một tập hợp các hằng số có tên. Enum thường được sử dụng khi bạn có một tập hợp các giá trị cố định và muốn làm cho mã dễ đọc hơn.
Ví dụ, bạn muốn biểu diễn các ngày trong tuần: Monday, Tuesday, ..., Sunday.
2. Cách khai báo Enum
enum TenEnum
{
GiaTri1,
GiaTri2,
...
}
- Ví dụ
enum DayOfWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
3. Giá trị mặc định của Enum
- Các giá trị trong enum mặc định bắt đầu từ 0 và tăng dần.
- Bạn có thể gán giá trị cụ thể cho từng phần tử:
enum DayOfWeek
{
Monday = 1,
Tuesday = 2,
Wednesday = 3,
Thursday = 4,
Friday = 5,
Saturday = 6,
Sunday = 7
}
4. Sử dụng Enum trong C#
- Khai báo biến kiểu Enum:
DayOfWeek today = DayOfWeek.Friday;
Console.WriteLine(today); // Output: Friday
- Ép kiểu Enum sang số nguyên:
int dayValue = (int)DayOfWeek.Friday;
Console.WriteLine(dayValue); // Output: 5
- Ép kiểu số nguyên sang Enum:
DayOfWeek day = (DayOfWeek)3;
Console.WriteLine(day); // Output: Wednesday
5. Enum và vòng lặp
Bạn có thể duyệt qua các giá trị của enum bằng cách sử dụng phương thức Enum.GetValues():
foreach (DayOfWeek day in Enum.GetValues(typeof(DayOfWeek)))
{
Console.WriteLine(day);
}
6. Thêm mô tả cho Enum
Trong C#, bạn có thể thêm mô tả cho từng giá trị của Enum bằng cách sử dụng thuộc tính Description trong thư viện System.ComponentModel.
- Bạn có thể viết một phương thức tiện ích để lấy mô tả của một giá trị Enum.
- Bạn cũng có thể lấy toàn bộ danh sách các giá trị và mô tả của một Enum:
7. Lợi ích của Enum
- Giúp mã dễ đọc và bảo trì hơn.
- Tránh sử dụng các giá trị "magic numbers".
- Dễ dàng xử lý các nhóm giá trị cố định.
8. Thực hành: Viết chương trình đơn giản
Đề bài: Viết chương trình nhận vào một số nguyên từ 1 đến 7 và in ra ngày tương ứng trong tuần.
Gợi ý:
using System;
enum DayOfWeek
{
Monday = 1,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
class Program
{
static void Main()
{
Console.Write("Nhập số từ 1 đến 7: ");
int dayNumber = int.Parse(Console.ReadLine());
if (Enum.IsDefined(typeof(DayOfWeek), dayNumber))
{
DayOfWeek day = (DayOfWeek)dayNumber;
Console.WriteLine($"Ngày tương ứng: {day}");
}
else
{
Console.WriteLine("Số nhập không hợp lệ!");
}
}
}
9. Kết luận
Enum là một công cụ hữu ích trong C# giúp bạn quản lý các giá trị cố định một cách hiệu quả và rõ ràng. Việc sử dụng enum không chỉ làm cho mã nguồn dễ hiểu mà còn giúp giảm thiểu lỗi do việc sử dụng sai giá trị.
Tác giả: Bạch Ngọc Toàn
Chú ý: Tất cả các bài viết trên TEDU.COM.VN đều thuộc bản quyền TEDU, yêu cầu dẫn nguồn khi trích lại trên website khác.
Bài viết liên quan
Tính đóng gói (Encapsulation) và best practices trong OOP
(Tính đóng gói) là một trong những nguyên tắc cơ bản của lập trình hướng đối tượng (OOP).
Đọc thêmTính trừu tượng - Abstract classes and interfaces
Tính trừu tượng (Abstraction) trong OOP là kỹ thuật ẩn đi các chi tiết triển khai và chỉ hiển thị cho người dùng những chức năng cần thiết.
Đọc thêmTính chất kế thừa (Inheritance) và đa hình (polymorphism)
Kế thừa là cơ chế cho phép một lớp (class) kế thừa các thuộc tính và phương thức từ một lớp khác.
Đọc thêmCách debug ứng dụng C#
Hướng dẫn cách debug chương trình C# trong Visual Studio và Visual Studio Code
Đọc thêmTìm hiểu về các loại Collection trong C#
Trong C#, collections là các cấu trúc dữ liệu được sử dụng để lưu trữ và quản lý các nhóm đối tượng. C# cung cấp nhiều loại collections khác nhau để phù hợp với các yêu cầu cụ thể của lập trình viên
Đọc thêmTổng quan về Generic và Non-Generic Collection
Hiểu khái niệm Generic và Non-Generic Collection và phân biệt giữa Generic Collection và Non-Generic Collection.
Đọc thêmSử dụng mảng (Arrays)
Mảng trong C# là một cấu trúc dữ liệu lưu trữ một dãy các phần tử có bộ nhớ nằm liên tiếp nhau và có kích thước cố đinh.
Đọc thêmLập trình hướng đối tượng
Lập trình hướng đối tượng (Object Oriented Programing) hay còn gọi là OOP. Là một kỹ thuật lập trình cho phép các lập trình viên có thể ánh xạ các thực thể bên ngoài đời thực và trừu tượng hoá thành các class và object trong mã nguồn.
Đọc thêmVòng lặp (loop)
Trong thực tế khi bạn cần thực thi một khối lệnh nhiều lần. Vòng lặp cho phép chúng ta thực thi một câu lệnh hoặc một khối lệnh nhiều lần.
Đọc thêmCấu trúc điều khiển Swicth case
C# cung cấp một cấu trúc khác để thực hiện rẽ nhiều nhánh thay cho việc lồng ghép nhiều if-else là cấu trúc switch-case.
Đọc thêm