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 จะได้มีคนฉลาดเยอะๆ ^_^
ไม่มีความคิดเห็น:
แสดงความคิดเห็น