[C#] Constants Interfaces ของ Java เทียบเท่ากับอะไรใน C#
ก่อนจะมาเข้าเรื่องของ C# กันลองย้อนไปทาง Java ก่อน โดยเจ้าภาษา Java นี่ มันไม่มี Global Variables ให้ ซึ่งถ้าเราต้องการ Set ค่าคงที่แล้วต้องการให้ทุก Class เห็น และสามารถใช้งานได้ เราต้องทำ Constants Interfaces มองง่ายๆเลย คือ Interface ที่มีแต่ Constant แหละ ตามตัวอย่างเลย มาทาง C# บ้าง ทำไม่ได้ครับ (ส่วนตัว ผมคิดว่าดีที่ C# ทำไม่ได้อ่า) เพราะมันแปลกๆกับการเอา Interface มาเก็บ Const และถ้ามีการจัดหมวดหมู่เยอะนี้ implement กันตาย แถมเป็น Anti-Pattern (ตามความเข้าใจของผม Interface ควรกำหนดการทำ มากกว่าจะไปกำหนด Data และพอทำเป็น Interface มันดันกลายเป็นการทำ public API ให้ชาวบ้านเห็นอีก โดยทางฝั่ง Java เองแนะนำให้ใช้เป็น static import แทนครับ) วกกลับมาสำหรับ C# ถ้าจำเป็นต้องทำให้ทำเป็น abstract class แทนครับ ดังตัวอย่าง แต่สำหรับเคสนี้ ควรทำเป็น Static Class (ใน C# กับ Java ไม่เหมือนกันนะครับ) ทำเป็น Global Variable ดีกว่านะครับ แต่ควรวางให้มันเห็นทั้ง Solution นะครับ (พอดีเคสที่ทำงานจริงไปเจอตอเข้า เพราะ ดันไปวาง static class ให้ project A ในชั้น UI และพอจะนำมาให้กับอีก project B ในชั้น Service พวก Business…