มือใหม่หันเขียนโค้ด
พื้นฐานที่ควรต้องรู้
Cloud Computing
Software Testing
Web
Software Design

27.Enum

💬 เคยมีปัญหาเวลาที่จะกำหนดค่าของที่มันเป็นข้อมูลเซ็ตเดิมๆกันไหม เช่นกำหนดว่าวันนี้เป็นวันอะไร จันทร์ อังคาร พุธ... ซึ่งอีกหน้านึงก็ต้องกำหนดค่าวัน จันทร์ อังคาร พุธ ... อีกไรงี้ ในรอบนี้เราจะมาดูการสร้างสิ่งที่เรียกว่า Enum กันดูบ้างนะว่ามันจะมาช่วยเราเรื่องนี้ยังไง

🎯 สรุปสั้นๆ

👨‍🚀 Enum คือ

เซ็ตของข้อมูลที่เราสร้างขึ้น โดยเบื้องหลังมันจะเก็บข้อมูลในรูปแบบของตัวเลข และเราสามารถกำหนดค่าให้มันได้ว่ามันจะมีค่าเป็นเลขอะไร แต่ถ้าเราไม่กำหนดค่ามันจะไล่เลขให้อัตโนมัติจากบนลงล่าง เริ่มจาก 0

ตัวอย่างการสร้างเซ็ตข้อมูลของวันในสัปดาห์

public enum DaysOfWeek
{
Sunday = 0,
Monday = 1,
Tuesday = 2,
Wednesday = 3,
Thursday = 4,
Friday = 5,
Saturday = 6,
}

ตัวอย่างการแปลง enum เป็นตัวเลข

int day = (int)DaysOfWeek.Sunday;

ตัวอย่างการแปลงตัวเลขกลับไปเป็น enum

DaysOfWeek today = (DaysOfWeek)3;

ถ้าเราใส่ตัวเลขที่ไม่มีอยู่ในเซ็ตของ enum เราจะได้เลขนั้นๆออกมาแทน

👨‍🚀 การแปลง string เป็น Enum

เราสามารถแปลง string ไปเป็น enum ได้ด้วยการใช้ Enum.Parse() หรือ Enum.TryParse() ครับตามตัวอย่างด้านบน

var today = Enum.Parse<DayOfWeek>("Sunday");

Enum.Parse() ถ้า string ตัวนั้นไม่ตรงกับข้อมูลในเซ็ตนั้นเลย มันจะเกิด error ออกมา ดังนั้นผมแนะนำว่าควรจะใช้ Enum.TryParse() มากกว่าครับ