Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

C# Enum.GetName() Method: ดึงชื่อของค่าเฉพาะใน Enum

เมธอด Enum.GetName(Type enumType, object value) ส่งคืนชื่อ (String) ของสมาชิก Enum ที่มีค่าตรงกับที่ระบุ ใช้เมื่อรู้ค่าแล้วอยากได้ชื่อ

ตัวอย่างพื้นฐาน

enum Stock
{
    Appliance,  // 0
    Clothing,   // 1
    Footwear    // 2
}

// ดึงชื่อของค่า 1
string name = Enum.GetName(typeof(Stock), 1); // "Clothing"

ตัวอย่างสมบูรณ์

using System;

class Demo
{
    enum Stock
    {
        Appliance,
        Clothing,
        Footwear
    }
    
    static void Main()
    {
        Console.WriteLine("หมวดที่ 2: " + Enum.GetName(typeof(Stock), 1)); // Clothing
        Console.WriteLine("หมวดที่ 3: " + Enum.GetName(typeof(Stock), 2)); // Footwear
        
        // กรณีค่าไม่มีใน Enum
        string notFound = Enum.GetName(typeof(Stock), 99);
        Console.WriteLine("ค่า 99: " + (notFound ?? "Not Found")); // null
    }
}

ผลลัพธ์

หมวดที่ 2: Clothing
หมวดที่ 3: Footwear
ค่า 99: Not Found

คำอธิบายเพิ่มเติม

  • ส่งคืน null หากค่าที่ระบุไม่มีใน Enum
  • พารามิเตอร์ value เป็น object ส่ง int, byte, Enum Instance ได้
  • ต่างจาก GetNames() ที่ส่งคืน Array ทั้งหมด

การใช้งานร่วมกับ ToString()

Stock item = Stock.Clothing;

// สองวิธีได้ผลลัพธ์เดียวกัน
string name1 = item.ToString();                    // "Clothing" (เร็วกว่า)
string name2 = Enum.GetName(typeof(Stock), item);  // "Clothing"

// ToString() แนะนำสำหรับ Instance ที่มีอยู่แล้ว
// GetName() เหมาะสำหรับค่าตัวเลข / Dynamic Value

Enum.TryParse (C# 4.0+) - แปลง String เป็น Enum อย่างปลอดภัย

string input = "Clothing";
if (Enum.TryParse(input, out Stock result))
{
    Console.WriteLine($"Parsed: {result} = {(int)result}");
}
else
{
    Console.WriteLine("Invalid value");
}