ฉันคิดว่าจะสร้างประเภทที่กำหนดเองสำหรับตัวระบุเช่นนี้:
public enum CustomerId : int { /* intentionally empty */ }
public enum OrderId : int { }
public enum ProductId : int { }
แรงจูงใจหลักของฉันในการทำเช่นนี้คือเพื่อป้องกันข้อผิดพลาดชนิดที่คุณบังเอิญส่งคำสั่ง orderItemId ไปยังฟังก์ชันที่คาดว่าจะมี orderItemDetailId
ดูเหมือนว่า enums ทำงานได้อย่างราบรื่นกับทุกสิ่งที่ฉันต้องการใช้ในเว็บแอปพลิเคชัน. NET ทั่วไป:
- การกำหนดเส้นทาง MVC ทำงานได้ดี
- การทำให้เป็นอันดับ JSON ทำงานได้ดี
- ทุก ๆ ออมที่ฉันสามารถคิดได้ผลดี
ดังนั้นตอนนี้ฉันสงสัยว่า "ทำไมฉันไม่ควรทำเช่นนี้?" นี่เป็นข้อเสียอย่างเดียวที่ฉันนึกได้:
- มันอาจสร้างความสับสนให้นักพัฒนาอื่น ๆ
- มันแนะนำความไม่สอดคล้องในระบบของคุณหากคุณมีตัวระบุที่ไม่ครบถ้วน
- มันอาจต้องใช้การหล่อแบบพิเศษเช่น
(CustomerId)42
กัน แต่ฉันไม่คิดว่านี่จะเป็นปัญหาเนื่องจากการกำหนดเส้นทาง ORM และ MVC จะส่งค่าของประเภท enum ให้คุณโดยตรง
ดังนั้นคำถามของฉันคือสิ่งที่ฉันหายไป? นี่อาจเป็นความคิดที่ไม่ดี แต่ทำไม