C# การแจงนับ

C Kar Caeng Nab



C# เป็นภาษาโปรแกรมที่ใช้ในการพัฒนาโปรแกรม เว็บไซต์ แอปพลิเคชัน Android เกม และอื่นๆ อีกมากมาย C# รองรับไลบรารีและเฟรมเวิร์กต่างๆ ที่มีฟังก์ชันในตัว Enum คือการแจงนับมันเป็นคลาส คลาสมีประเภทข้อมูลและฟังก์ชันที่แตกต่างกัน โครงสร้างข้อมูลซึ่งมีตัวแปรต่างๆ อยู่ในนั้น การแจงนับมีประโยชน์อย่างยิ่งเมื่อเราทราบตัวแปรทั้งหมด ณ เวลาคอมไพล์ ซึ่งผู้ใช้กำหนดชนิดข้อมูลในนั้น Enum มีค่าที่แตกต่างกันและค่าเหล่านั้นไม่สามารถเปลี่ยนแปลงได้ สามารถดึงค่าและใช้ในโค้ดได้ แต่เราไม่สามารถเปลี่ยนค่าในขณะรันไทม์ ค่าเหล่านี้สามารถอ่านได้และไม่สามารถเปลี่ยนแปลงได้เท่านั้น การแจงนับถือว่าข้อมูลทั้งหมดในนั้นเป็นสตริง หากเราต้องการใช้ค่าจำนวนเต็ม เราต้องพิมพ์คำว่า cast การแจงนับมีประโยชน์เพราะใช้หน่วยความจำและพื้นที่น้อยลง

ไวยากรณ์







ชื่อ E_Name { ค่า_1, ค่า_2, ค่า_3,….. } ;


หรือ



ชื่อ E_Name { ค่า_1 = 3. 4 , ค่า_2 = 90 , ค่า_3 = 8 ,….. } ;


คุณลักษณะ 'เอนัม' เป็นคำหลักในการกำหนดการแจงนับ เมื่อใดก็ตามที่เราต้องการประเภทข้อมูลที่ผู้ใช้กำหนด ‘ เอนัม' คำหลักใช้เพื่อสร้างประเภทข้อมูลที่ผู้ใช้กำหนด ' E_name' เป็นชื่อของคลาส enum ภายในวงเล็บปีกกาคลาสนี้จะมีพารามิเตอร์และค่าทั้งหมดอยู่ในนั้น เราสามารถเขียนอาร์กิวเมนต์ได้เท่านั้นและคอมไพเลอร์จะกำหนดค่าให้ ตามค่าเริ่มต้น เริ่มจากค่าแรกที่เก็บในดัชนี 0 และค่าถัดไปใน 1 ไปเรื่อยๆ



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





ประเภท

ในภาษา C# การแจงนับมี 2 ประเภท รายการเหล่านี้อยู่ด้านล่าง:

    • การแจงนับอย่างง่าย
    • การแจงนับธง

การแจงนับอย่างง่าย

ในหมวดหมู่นี้ สมาชิกของคลาส 'enum' มีค่าเดียว



การแจงนับธง

ในหมวดหมู่นี้ สมาชิกของคลาสแฟล็ก enum มีหลายค่าหรือหลายค่าโดยใช้ตัวดำเนินการระดับบิตหรือใช้ OR (|)

ตัวอย่างที่ 1:

ในกรณีนี้ เราจะเรียนรู้วิธีที่เราสามารถใช้คลาส 'enum' อย่างง่ายและดึงค่าโดยไม่ต้องกำหนดให้กับตัวแปร


สำหรับการเขียนโค้ดด้วยภาษาโปรแกรม C# เราต้องสร้างโปรเจ็กต์ใหม่ก่อนแล้วจึงเริ่มเขียนโค้ด เมื่อเราต้องการสร้างคอนโซลแอ็พพลิเคชัน เราควรเลือกคอนโซลแอ็พพลิเคชัน C# framework ซึ่งจะเขียนคลาสและฟังก์ชัน main() โดยอัตโนมัติ ในการใช้คำว่า 'enum' ข้างต้นในโค้ด เราจะกำหนดและเริ่มต้นคลาสภายใน 'Program' เนื่องจาก enum เป็นคำหลักและคำถัดไปหลังจาก enum คือ 'fruit_names' ภายในวงเล็บปีกกา เรากำหนดรายการที่เราต้องการ ที่นี่ คลาส enum มีชื่อผลไม้สี่ชื่อ เราเรียกใช้ฟังก์ชันทั้งหมดภายในเมธอด main() ภายในสแตติก main() เราจะแสดงค่า enum ทั้งหมดทีละค่า ในโค้ดนี้ เราแค่เขียนอาร์กิวเมนต์ enum ไม่ใช่ค่า ดังนั้นมันจะกำหนดดัชนีที่พวกเขาเก็บไว้เป็นค่าโดยอัตโนมัติ

ฟังก์ชัน Console.writeline() ใช้เพื่อเขียนบนหน้าจอผลลัพธ์ และหลังจากนำเสนอข้อความ เคอร์เซอร์จะย้ายไปยังบรรทัดถัดไป ภายในคำสั่งนี้ ให้เขียนข้อความและต่อด้วยเครื่องหมาย '+' เพื่อแสดงข้อความที่กำหนดนั้นด้วยค่า หลังจากเชื่อมประเภท 'ชื่อ enum' แล้วใช้ (.) เพื่อระบุประเภทเฉพาะของ 'enum': fruit_names.Apple จากนั้นในข้อความถัดไป ให้ใช้เครื่องหมาย (+) อีกครั้งเพื่อเชื่อมประเภทกับข้อความและดัชนีที่เก็บไว้ ในการรับดัชนี ก่อนอื่นเราต้องแปลงเป็นจำนวนเต็มโดยทำการพิมพ์ ในประเภท C# การแคสต์ทำได้โดยใช้วงเล็บเท่านั้น ภายในวงเล็บ ให้เขียนประเภทข้อมูลที่เราต้องการพิมพ์ นอกวงเล็บ ให้เขียนชื่อตัวแปร เช่น (int)var_name ด้วยวิธีนี้ เราสามารถรับข้อความที่มีค่า enum และดัชนีที่เก็บข้อความนั้นไว้

ทำซ้ำสามครั้ง เพียงแค่เปลี่ยนข้อความและประเภท enum การแจงนับทำให้โค้ดดูดีและสะอาดตา ฟังก์ชัน Console.ReadKey() จะทำให้คอนโซลทำงานต่อไปจนกว่าเราจะปิด หากเราไม่ใช้คำสั่งนี้ คอนโซลจะกะพริบหนึ่งครั้งจากนั้นจะหายไป

ตัวอย่างที่ 2:

ในโปรแกรมนี้ เราจะใช้คลาส 'enum' อย่างง่ายโดยกำหนดค่าต่าง ๆ ให้กับแอตทริบิวต์ของคลาส


ในตัวอย่างที่สอง เราสร้างโครงการอีกครั้งสำหรับคอนโซลแอ็พพลิเคชัน และกำหนดการแจงนับภายในคลาสภายใน 'โปรแกรม' ด้วยคีย์เวิร์ด 'enum' คราวนี้มีคลาส 'รายการ' ที่มีค่าต่างกัน ภายในฟังก์ชัน main() เราจะเข้าถึงองค์ประกอบทั้งหมดของ 'รายการ' ของคลาส enum ให้เราใช้วิธี console.writeLine() มันจะแสดงทุกอย่างที่มีในนั้น ขั้นแรก แสดงข้อความ จากนั้นเรียกใช้ฟังก์ชัน Console.WriteLine() อีกครั้ง เพื่อแสดงรายการแรกที่มีปริมาณ กำหนดข้อความที่เราต้องการให้แสดงบนเทอร์มินัลและเชื่อมต่อกับ items.chairs จะได้รับรายการแรก (เก้าอี้) ของ 'รายการ' ของคลาส enum เพื่อให้ได้ปริมาณของรายการนี้ เราต้องทำการคัดเลือกเนื่องจากข้อมูลในคลาส enum อยู่ในรูปของสตริง ดังนั้นในการเข้าถึงค่าของพวกมัน ก่อนอื่นให้พิมพ์คำว่า cast ในการรับมูลค่าของ 'เก้าอี้' ให้ทำการแคสต์เช่น (int)items.chairs มิฉะนั้นเราจะได้เพียงไอเทม 'เก้าอี้' ที่ไม่ได้มูลค่า หากเราสังเกตที่นี่ จะมีการใช้สัญลักษณ์ '\n' และ '\t' เมื่อใช้ '\t' เราจะให้พื้นที่แท็บ และเมื่อใช้ '\n' เราจะย้ายเคอร์เซอร์ไปยังบรรทัดถัดไป ทำซ้ำขั้นตอนนี้สองครั้ง เราต้องอัปเดตค่า enum เท่านั้น ในตอนท้าย เพียงแค่เขียน console.ReadKey() เพื่อให้คอนโซลทำงานเพื่อให้เราสามารถเห็นผลลัพธ์

ตัวอย่างที่ 3:

เราจะใช้ enum 'ธง' ในสถานการณ์นี้


ในการแจงนับอย่างง่าย เราสามารถกำหนดค่าให้กับสมาชิกของคลาส enum ได้เพียงค่าเดียวเท่านั้น แต่ด้วยการแจงนับแฟล็ก เราสามารถกำหนดค่ามากกว่าหนึ่งค่าให้กับสมาชิกหนึ่งคนของคลาส enum การแจงนับประเภทนี้มีประโยชน์เมื่อเราจัดการกับตัวเลือกต่างๆ และเมื่อเรามีค่ามากกว่าหนึ่งค่า ในการใช้การแจงนับแฟล็ก ก่อนกำหนดคลาส enum เราต้องเขียน [flags] แล้วเขียน enum class 'flag_example' ตอนนี้ ในคลาสนี้ เราสามารถกำหนดค่ามากกว่าหนึ่งค่าให้กับสมาชิกหนึ่งคนได้อย่างง่ายดาย ในตัวอย่างนี้ เรากำหนดค่าสองค่าให้กับแอตทริบิวต์ 'driver' และแยกค่าทั้งสองโดยใช้ตัวดำเนินการ (|) จากนั้นในฟังก์ชั่น main() ประกาศตัวแปร 'var flags' หากต้องการแสดงมากกว่าหนึ่งรายการบนคอนโซล ให้ใช้ตัวดำเนินการหรือ (|) จากนั้นเรียกรายการ enum ด้วยชื่อคลาสและชื่อรายการ หากต้องการแสดงข้อความ ให้เรียกใช้เมธอด Console.WriteLine() เพื่อแสดงค่าของแฟล็ก ให้เขียน 'flag' ใน Console.Write() อื่น ในคำสั่งถัดไป ฟังก์ชัน Console.ReadKey() ถูกเรียก ซึ่งจะทำให้คอนโซลเปิดอยู่จนกว่าเราจะปิด

บทสรุป

ในคู่มือนี้ เราได้เรียนรู้เกี่ยวกับการแจงนับว่ามันคืออะไร และเราจะใช้มันในภาษา C# ได้อย่างไร การแจงนับทำให้รหัสง่ายและอ่านได้ เนื่องจากค่าในคลาส enum ไม่สามารถเปลี่ยนแปลงได้ มันให้ประโยชน์แก่เราเมื่อเราจัดการกับข้อมูลประเภทดังกล่าวที่ไม่ต้องการค่าที่เปลี่ยนแปลง เราได้กล่าวถึงไวยากรณ์และประเภทของการแจงนับโดยใช้รหัสต่างๆ การแจงนับใช้หน่วยความจำน้อยและใช้งานง่าย