Giới thiệu
Enum.GetName(Type enumType, object value) trả về tên string của một giá trị enum cụ thể. Trả về null nếu value không thuộc enum.
Ví dụ cơ bản
enum Vehicle { Car, Motorbike, Truck, Bicycles }
string name = Enum.GetName(typeof(Vehicle), Vehicle.Motorbike); // "Motorbike"
Ví dụ hoàn chỉnh
using System;
class Demo
{
enum Vehicle { Car, Motorbike, Truck, Bicycles }
static void Main()
{
string res = Enum.GetName(typeof(Vehicle), Vehicle.Motorbike);
Console.WriteLine(res);
}
}
Kết quả
Motorbike
So sánh GetName vs GetNames
| Phương thức | Input | Output | Dùng khi |
|---|---|---|---|
| GetNames | typeof(Enum) | string[] | Cần tất cả tên |
| GetName | typeof(Enum), value | string (hoặc null) | Cần tên của 1 giá trị cụ thể |
Xử lý giá trị không hợp lệ
object invalid = 999;
string name = Enum.GetName(typeof(Vehicle), invalid); // null
if (name == null)
Console.WriteLine("Giá trị không thuộc enum");
Cách hiện đại hơn (C# 6+): nameof
// Compile-time, refactor-safe string name = nameof(Vehicle.Motorbike); // "Motorbike"
Lưu ý
- Ném
ArgumentNullExceptionnếu enumType hoặc value null. - Ném
ArgumentExceptionnếu enumType không phải enum. - Với
[Flags]enum, GetName chỉ trả về tên nếu value khớp chính xác 1 hằng số (không phải tổ hợp).