Trong bài viết này, Mytour sẽ giới thiệu Enum trong C# và cách thực hiện khởi tạo Enum trong C#.
Tìm hiểu chi tiết về Enum trong C#
1. Enum trong C#.
1.1. Cách Khai Báo enum trong C#.
1.2. Một Ví Dụ về Enum trong C#.
2. Khởi Tạo Enum.
2.1. Một Ví Dụ về Khởi Tạo Enum.
3. Thay Đổi Kiểu Dữ Liệu Của Thành Viên Enum.
3.1. Một Ví Dụ về Thay Đổi Kiểu Dữ Liệu.
1. Enum trong C#
Enum (hoặc Enumeration) trong C# là một kiểu dữ liệu giá trị, được sử dụng để gán tên hoặc chuỗi giá trị cho các hằng số nguyên, giúp chương trình trở nên dễ đọc và dễ bảo trì. Ví dụ, 4 loại bài trong bộ bài có thể được biểu diễn bằng một Enum: cơ, nhép, rô, bích.
Enum được sử dụng để định nghĩa các kiểu dữ liệu liệt kê (Enumerated Data Type), và khai báo bằng từ khóa enum trực tiếp trong không gian tên (namespace), lớp (class) hoặc cấu trúc (structure).
1.1. Khai Báo Enum Trong C#
Cú Pháp Khai Báo Enum có dạng:
Trong cú pháp trên, Enum_variable là tên biến của enum, và string_1 được gán giá trị 0, string_2 được gán giá trị 1, ... . Theo mặc định, thành viên đầu tiên của enum có giá trị là 0, và mỗi giá trị thành viên enum tiếp theo tăng thêm 1 đơn vị, tuy nhiên chúng ta có thể thay đổi giá trị mặc định này.
1.2. Một Ví Dụ về Enum Trong C#
Dưới đây là đoạn mã minh họa về enum. Trong ví dụ này, chúng ta có một enum có tên là tháng được định nghĩa với các thành viên như jan, feb, mar, apr, may. Hãy thử in ra các giá trị nguyên mặc định của enum này và thực hiện chuyển đổi tường minh từ enum sang số nguyên.
Kết quả xuất hiện như sau:
Trong ví dụ này, chúng ta tạo một enum có tên là hình dạng với các thành viên là Hình tròn được khởi tạo với giá trị mặc định là 0 và Hình vuông được gán giá trị 1 trong lớp Chu vi. Hàm thành viên chuVi() nhận một tham số để xác định bán kính và chu vi của hình.
Có một tham số khác được sử dụng để đánh giá hình là Hình tròn hoặc Hình vuông dưới dạng giá trị nguyên (0 hoặc 1). Trong phương thức main(), chúng ta tạo một đối tượng của lớp Chu vi. Khi gọi phương thức chuVi(), Chuvi.hinhTron biểu thị là Hình tròn có giá trị là 0 và tương tự là Chuvi.hinhVuong có giá trị là 1. Do đó, trong phương thức, nếu đối tượng s1 có giá trị 0, nó là Hình tròn; ngược lại, nếu có giá trị 1, nó là Hình vuông.
Kết quả xuất hiện dưới dạng:
Như đã đề cập trước đó, giá trị mặc định của thành viên đầu tiên trong enum là 0, sau đó tăng thêm 1 cho mỗi thành viên tiếp theo. Tuy nhiên, nếu bạn muốn, bạn có thể thay đổi các giá trị mặc định này.
2.1. Ví dụ về khai báo Enum:
Trong ví dụ này, day1 được gán giá trị 1 bởi người dùng, day2 được gán giá trị 2 và tương tự với thành viên day3. Bạn chỉ cần thay đổi giá trị của thành viên enum đầu tiên, các thành viên enum sau đó sẽ tự động tăng thêm 1 đơn vị so với giá trị trước đó.
Lưu ý: Nếu dữ liệu của thành viên enum chưa được khởi tạo, giá trị của nó sẽ được đặt theo quy tắc sau đây:
- Nếu là thành viên đầu tiên, giá trị của nó sẽ là 0 nếu không có giá trị khác.
- Nó sẽ được đặt giá trị bằng cách thêm 1 vào giá trị trước đó của thành viên dữ liệu enum.
2.2. Ví dụ khác về khai báo enum:
Ở đây, A được đặt giá trị là 0 theo mặc định, B tăng thêm 1 giá trị từ A. Tuy nhiên, vì C đã được khởi tạo là 6, giá trị của D sẽ là 7.
Ví dụ: Dưới đây là một minh họa về việc khởi tạo dữ liệu cho các thành viên trong enum, với giá trị được xác định bởi người dùng và một số trường hợp đặc biệt khi khởi tạo enum.
Kết quả xuất hiện như sau:
Giải thích: Trong đoạn mã trên, có 2 enum là color và days. Trong trường hợp của enum days, khởi tạo không được thực hiện. Do đó, theo quy tắc, Monday được gán giá trị là 0, tiếp theo tăng thêm 1 giá trị cho Tuesday, Wednesday và các ngày khác.
Tuy nhiên, trong trường hợp của enum color, Red được gán giá trị là 0, Yellow tăng thêm 1 giá trị, tương tự với Blue. Trong trường hợp của Green, giá trị của nó là 5 (giá trị của Yellow + 1). Vì vậy kết quả giá trị là 6. Tương tự cho Brown, giá trị của nó là 7, và đối với Black, giá trị là 10 (7 + 3).
3. Thay đổi Loại dữ liệu trong Enum
Mặc định, kiểu dữ liệu cơ bản của enum trong C# là int. Tuy nhiên, người dùng có thể thay đổi sang kiểu bool, long, double, ... theo ý muốn.
3.1. Ví dụ về việc thay đổi kiểu dữ liệu của các thành viên trong Enum trong C#:
Chương trình: Dưới đây là một ví dụ minh họa cho việc thay đổi kiểu dữ liệu của các thành viên trong Enum.
Dữ liệu đầu vào:
Kết quả xuất hiện dưới dạng:
Đây là một giới thiệu về Enum trong C#. Ngoài ra, độc giả có thể tham khảo các bài viết khác trên Mytour để hiểu sâu hơn về cấu trúc trong C# và chuỗi trong C#.