Enum Trong C# – Nguyễn Anh Tuấn
Có thể bạn quan tâm
Enum là gì?
enum trong C# là một từ khóa, nó sử dụng để khai báo một tập hợp kiểu liệt kê (enumeration). Một Enumeration (liệt kê) là một tập hợp các hằng số nguyên được đặt tên.Các kiểu liệt kê trong C# là kiểu dữ liệu giá trị. Nói cách khác, kiểu liệt kê chứa các giá trị của nó và không thể kế thừa hoặc không thể truyền tính kế thừa.
Nói cách khác, enum là cách mà C# hỗ trợ người dùng gom nhóm các hằng số lại với nhau và có chung một tên gọi (thường các hằng số này sẽ có liên quan với nhau ví dụ như các trạng thái của 1 sự vật, các tính chất của 1 sự vật, . . .) Giờ chúng ta cần xem nếu không có Enum trong một số tình huống bạn phải làm thế nào, chẳng hạn bạn cần một tập hợp chứa các ngày trong tuần. Thông thường bạn định nghĩa ra 7 hằng số tự nhiên để đại diện cho 7 trong tuần Một class với một method mô phỏng lấy ra tên công việc sẽ làm ứng với ngày cụ thể trong tuần. (Giống với thời khóa biểu) Rõ ràng các đoạn mã như vậy là không an toàn. Chẳng hạn như khi bạn gõ các giá trị cho ngày trong tuần chẳng may trùng nhau. Hoặc khi gọi phương thức Timetable.getJob(int) mà truyền vào giá trị nằm ngoài các giá trị định nghĩa trước.- Không phải là kiểu an toàn: Đầu tiên thấy rằng mã (code) của bạn không an toàn, bạn có thể gọi phương thức GetJob(int) và truyền vào bất kỳ giá trị nào.
- Không có ý nghĩa trong in ấn: Nếu bạn muốn in ra các ngày trong tuần nó sẽ là các con số,thay vì một chữ có ý nghĩa như “MONDAY”.
Đặc điểm của enum:
- Là một kiểu dữ liệu tham trị
- Enum không được phép kế thừa
Khai báo biến enum trong C#
Cú pháp chung để khai báo một Enumeration trong C# là:
enum <tên_enum> { danh_sách_enum };Tại đây,
- tên_enum xác định tên kiểu liệt kê.
- danh_sách_enum là danh sách các định danh được phân biệt nhau bởi dấu phảy.
Mỗi biểu tượng trong danh sách liệt kê này đại diện cho một giá trị nguyên, biểu tượng sau có giá trị lớn hơn của biểu tượng ở trước. Theo mặc định, giá trị của biểu tượng kiểu liệt kê đầu tiên là 0. Ví dụ:
enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };Lưu ý:
- Ta hoàn toàn có thể quy định giá trị cho từng biểu tượng hằng bằng cách trực tiếp khi khai báo
enum Color { RED = 2, BLUE = 4, YELLOW = 6, }
Sử dụng
Ta có thể truy xuất đến từng biểu tượng hằng của enum thông qua toán tử “.” Kèm theo tên biểu tượng hằng muốn truy xuất.
Ví dụ:
WeekDay.SUNDAY;Lưu ý:
- Mặc dù bản chất các biểu tượng hằng là đại diện cho các số nguyên nhưng bạn không thể so sánh trực tiếp chúng với các số nguyên được mà phải ép kiểu.
Ví dụ:
Để chương trình không báo lỗi ta có thể ép kiểu biểu tượng hằng RED về kiểu int.
Choose == (int)Color.RED
Chúng ta cũng có thể ép kiểu ngược lại từ số nguyên sang kiểu liệt kê.
Color Background = (Color)2; // Background sẽ có giá trị là Color.YELLOW
Sử dụng toán tử == để so sánh các phần tử của enum
Enum là một đối tượng tham chiếu (reference object) giống như class, interface nhưng nó cũng có thể sử dụng cách so sánh ==. Hãy xem các đối tượng tham chiếu (reference object) so sánh thế nào: Với Enum, bạn có thể sử dụng toán tử == để so sánh.Duyệt trên các phần tử của Enum
Chúng ta có thể duyệt trên tất cả các phần tử của Enum.
Ví dụ:
Enum và Attribute
Bạn có thể gắn các Attribute lên các phần tử của Enum, điều này giúp cho Enum mang nhiều thông tin hơn, và bạn có thể lấy ra các thông tin đó ứng với từng phần tử của Enum.
enum Gender (Giới tính) có 2 phần tử MALE (Nam) và FEMALE (Nữ).
class Gender Và ví dụ sử dụng enum Gender:Enum có thể có phương thức hay không?
Trong C# enum không thể có phương thức, tuy nhiên trong trường hợp bạn muốn có một cái gì đó giống như Enum và có phương thức bạn có thể định nghĩa một class, class này không cho phép tạo thêm các đối tượng ngoài các đối tượng đã được tạo sẵn của nó.
Share this:
Related
Từ khóa » Sử Dụng Enum Trong C#
-
Hướng Dẫn Và Ví Dụ C# Enum - Openplanning
-
Enum Trong Lập Trình C# | How Kteam
-
Kiểu Dữ Liệu Liệt Kê (Enumeration) Trong C#, Từ Khóa Enum | Tự Học ICT
-
Enum Trong C# - Học Lập Trình C# Online - VietTuts
-
Enum Trong C# | 85 Bài Học Lập Trình C# Hay Nhất
-
Enum Trong C# Là Gì? Cú Pháp Và Cách Khởi Tạo - Thủ Thuật
-
Kiểu Enum Trong Lập Trình C# - Minh Hoàng Blog
-
Enum Trong C# - Hoclaptrinh
-
Sử Dụng Cấu Trúc Struct Và Kiểu Liệt Kê Enum Trong Lập Trình C# C Sharp
-
Kiểu Enum Trong C# - Học Hỏi Net
-
[C#] Hướng Dẫn Sử Dụng Kiểu Giá Trị Enum Trong Csharp
-
Struct Và Enum Trong C# | Comdy
-
Enum Và Nghệ Thuật Sử Dụng - Viblo
-
Enum Trong C# - Quản Trị Máy Tính
-
Kiểu Enum Trong C#
-
Enum Trong Lập Trình C# | How Kteam - ThienNhuong.Com
-
Lập Trình C# - Enum - T-Root
-
Enum Trong Lập Trình C# | How Kteam | Cách Làm - Top Review