為 Enum 加上 TryParse 功能-新增 EnumHelper(Of T) 類別(Net3.5)
在寫這篇文章時,才發現原來 Net 4.0 的 System.Enum 已有提供 TryParse 功能,而且比我這個版本更完備,不過因為我手邊專案幾乎沒有 4.0 的版本,所以暫時還是要用自訂的 EnumHelper(Of T) 的方式做。System.Enum 本身有提供 Parse 的方法,但是在 3.5 並沒有 TryParse,所以自己做了一個靜態類別 EnumHelper(Of T) 來處理,下面就直接看 Code 吧:
Try
If [Enum].IsDefined(GetType(T), value) = False Then Throw New ArgumentException("列舉中無匹配值。")
returnedEnum = CType([Enum].Parse(GetType(T), value.ToString(), ignoreCase), T)
Return True
Catch ex As Exception
returnedEnum = Nothing
Return False
End Try
End Function
Public Shared Function TryParse(ByVal value As Object, ByRef returnedEnum As T) As Boolean
Return EnumHelper(Of T).TryParse(value, False, returnedEnum)
End Function
--------
沒什麼特別的~
不過是一些筆記而已