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

C# Enum.Format() Method: จัดรูปแบบค่า Enum เป็น String

เมธอด Enum.Format(Type enumType, object value, string format) แปลงค่า Enum เป็น String ตามรูปแบบที่ระบุ รองรับ Format Specifiers ต่างๆ

Format Specifiers

Specifierคำอธิบายตัวอย่าง (ค่า = 1)
G / gGeneral (Default) - ชื่อถ้ามี, ไม่มีแสดงตัวเลข"Keyboard"
D / dDecimal - ค่าตัวเลขฐานสิบ"1"
X / xHexadecimal - ค่าฐานสิบหก (Upper/Lower)"00000001" / "00000001"
F / fFlags - แสดงเป็น Flag Combination (ต้องมี [Flags])"Keyboard"

ตัวอย่าง: Decimal Format

using System;

class Demo
{
    enum Stock
    {
        PenDrive,   // 0
        Keyboard,   // 1
        Speakers    // 2
    }
    
    static void Main()
    {
        Stock st = Stock.Keyboard;
        
        Console.WriteLine("Product: " + st);                              // Keyboard (ToString)
        Console.WriteLine("Value (Decimal): " + Enum.Format(typeof(Stock), st, "d")); // 1
        Console.WriteLine("Value (Hex): " + Enum.Format(typeof(Stock), st, "x"));     // 00000001
        Console.WriteLine("General: " + Enum.Format(typeof(Stock), st, "g"));         // Keyboard
    }
}

ผลลัพธ์

Product: Keyboard
Value (Decimal): 1
Value (Hex): 00000001
General: Keyboard

การใช้งานกับ Flags Enum

[Flags]
enum Permissions
{
    None = 0,
    Read = 1,
    Write = 2,
    Execute = 4
}

Permissions p = Permissions.Read | Permissions.Execute; // 5

Console.WriteLine(Enum.Format(typeof(Permissions), p, "g")); // Read, Execute
Console.WriteLine(Enum.Format(typeof(Permissions), p, "f")); // Read, Execute
Console.WriteLine(Enum.Format(typeof(Permissions), p, "d")); // 5
Console.WriteLine(Enum.Format(typeof(Permissions), p, "x")); // 00000005

สรุป

  • Enum.Format ให้การควบคุมรูปแบบ Output ได้ละเอียด
  • ToString() หรือ Enum.Format(..., "g") ให้ผลลัพธ์เหมือนกัน
  • ใช้ "d" สำหรับค่าตัวเลข, "x" สำหรับ Hex, "f" สำหรับ Flags