Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Enum.GetName trong C#


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ứcInputOutputDùng khi
GetNamestypeof(Enum)string[]Cần tất cả tên
GetNametypeof(Enum), valuestring (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 ArgumentNullException nếu enumType hoặc value null.
  • Ném ArgumentException nế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).