วันอาทิตย์ที่ ๑๓ กันยายน พ.ศ. ๒๕๕๒

VB.NET กับ ENUM

วันก่อนเขียนโปรแกรมเพื่อไป Execute StoreProcedure ตัวหนึ่ง ซึ่งใน SP ตัวนี้จะมีการ Return Value กลับมาให้ด้วยเพื่อบอกสถานะของการทำงาน ดังนั้นในส่วนของ VB.NET ผมก็เลยสร้าง Enum ขึ้นมาเพื่อใช้ระบุสถานะดังกล่าว


Public Class abcManager

Public Enum xxxResult
Success = 0
BillNotFound = 100
NoOutstandingAmount = 200
SQLException = 300
UnknownException = 900
End Enum

Public Shared Function xyz() as xxxResult
Public Shared Function .......

End Class



ทีนี้ตอนฝั่ง UI (Presentation Layer) เรียก xyz function มาใช้งานก็ได้ xxxResult กลับมา ทีนี้ตอนจะแสดงผลลัพธ์ให้ user เห็น ถ้าเป็นตัวเลขก็คงไม่ได้ ก็ต้องแสดงเป็นข้อความ ความคิดแรกคือ ใช้ Select Case ในการตรวจสอบ xxxResult เพื่อแสดงข้อความ แต่คิดอีกทีมันไม่ยืดหยุ่นแฮะ ดังนั้นคิดอีกที เอาชื่อของ Enum มาโชว์เลยก็น่าจะได้ ทีแรกผมเขียนแบบนี้ครับ


Dim result As xyzBLL.abcManager.xxxResult
result = xyzBLL.abcManager.xyz()
MsgBox("Error - " & [Enum].GetName(result.GetType, result), MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly, My.Application.Info.ProductName)


ซักพักนึกขึ้นมาได้เลยว่าน่าจะทำ Overrides Function ToString ของ Enum แต่อยากรู้ว่า default มันได้ค่าอะไร เลยลองทดสอบ result.ToString เอ่อ ปรากฎได้ผลเหมือนกัน เพิ่งรู้นะเนียว่า ToString ของ Enum มันคืนค่าเป็น Name อุตสาห์ไปใช้ GetName Function เฮ้อ เข้าใจคำว่า ฉลาดเรื่องโง่ๆ ละ

-*-"

เคยได้ยินมาว่าคนเก่งมักเรียนรู้จากประสบการณ์ตนเอง ส่วนคนฉลาด มักเรียนรู้จากประสบการณ์คนอื่น
เลยเอาเรื่องนี้มาเขียน blog จะได้มีคนฉลาดเยอะๆ ^_^

ไม่มีความคิดเห็น: