05/11/2019, 21:40

[C#] Hướng dẫn sử dụng kiểu giá trị Enum trong csharp

Bài viết hôm nay mình sẽ tiếp tục giới thiệu đến các bạn Kiểu dữ liệu Enum trong lập trình C# winform. Kiểu dữ liệu enum giúp ta định nghĩa một tập các giá trị nguyên khó nhớ, thành một tập các định danh bằng chữ gợi ý nghĩa, giúp ta dễ đọc, hiểu mã nguồn và ...

Bài viết hôm nay mình sẽ tiếp tục giới thiệu đến các bạn Kiểu dữ liệu Enum trong lập trình C# winform.

Kiểu dữ liệu enum giúp ta định nghĩa một tập các giá trị nguyên khó nhớ, thành một tập các định danh bằng chữ gợi ý nghĩa, giúp ta dễ đọc, hiểu mã nguồn và dễ sử dụng hơn.

enum_csharp_demo

Ví dụ: chúng ta có đoạn mã như sau

int GetToday() {
 // ...
} 
int today = GetToday();
if ( today == 8 ) Output("Hôm nay là ngày chủ nhật");

với enum, đoạn code trên được viết lại tường minh hơn.

DayOfWeek GetToday() {
// ...
}

// .....
DayOfWeek today = GetToday();
if (today == DayOfWeek.Sunday) Output("Hôm nay là ngày chủ nhật");

KHAI BÁO

Ta sử dụng từ khóa enum (như trong C và C++) để khai báo kiểu dữ liệu enum.

Cũng giống như class và struct, enum có thể khai báo độc lập, khai báo trong một namespace, trong class hoặc trong struct.

namespace Laptrinhvb{
  public enum DayOfWeek {
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
 }
}

Về bản chất các giá trị enum Mon, Tue… là các số nguyên được gắn mác.

Mặc định, Mon có giá trị bằng 0, Tue bằng 1, các giá trị sau tăng dần 1 đơn vị. Có thể chỉ định tường minh giá trị có một số hoặc tất cả:

public enum DayOfWeek {
  Monday = 2,
  Tuesday = 3,
  Wednesday,
  Thursday,
  Friday,
  Saturday,
  Sunday
}

Ta có thể dùng các giá trị enum được khai báo trước đó để định nghĩa cho các enum ở sau.

public enum DayOfWeek {
  Monday = 2,
  Tuesday = 3,
  Wednesday,
  Thursday = Wednesday + 1,
  Friday,
  Saturday,
  Sunday
}

Mặc định, giá trị của các enum là số nguyên với khai báo trên là ngầm định của khai báo sau:

public enum DayOfWeek : int { /* … */ }


nếu muốn chỉ định các kiểu dữ liệu nguyên khác làm dữ liệu lưu trữ cho enum thì phải khai báo tường minh.

CÁCH SỬ DỤNG

var x = (int)DayOfWeek.Sunday;
// x = 8
var y = (DayOfWeek)7
// y = DayOfWeek.Saturday

Thanks for watching!

Tags: enum c#enum csharp
0