Thứ Tư, 30 tháng 12, 2009

// // Leave a Comment

Convert string to enum - Chuyển đổi chuỗi sang kiểu liệt kê C#

Dưới đây là 2 cách mà ta có thể chuyển đổi 1 chuỗi kiểu string sang kiểu liệt kê enum:

1. Cách đơn giản nhất nè:
- Sử dụng lớp Enum sẵn có (sử dụng giống như ta nhập vào đó là 1 kiểu số nguyên . . )
- Cú pháp như sau:
var v_enum_result = (enumType)Enum.Parse(typeof(enumType), stringValue);

- Phương thức này sẽ trả về cho ta kiểu enumType mà ta mong muốn từ stringValue.

2. Cách này thì cũng tương tự như cách trên:
- Ta đi xây dựng 1 phương thức tương tự như Enum.Parse();
- Xây dựng 1 phương thức tĩnh có tên có tên: ConvertStringToEnum()
static object ConvertStringToEnum(Type t, string Value)
{
  foreach (System.Reflection.FieldInfo fi in t.GetFields())
  {
   if (fi.Name == Value)
     return fi.GetValue(null);
  }
  throw new Exception(string.Format("Can't convert {0} to {1}", Value, t.ToString()));
}

Thế là có kiểu enum xài chơi rồi . . .

*** Quên mất, sử dụng nó thế nào nhỉ?
- Khà khà, tương tự như cách thứ nhất. Ta làm như sau
- Ví dụ luôn: Convert string sang kiểu FormWindowState.

FormWindowState userWindowState = (FormWindowState)ConvertStringToEnum(typeof(FormWindowState), strFormWindowSate);


Bây giờ thì có thể cười được rồi, he he. . .

0 comments: