為 Enum 加上 TryParse 功能-新增 EnumHelper(Of T) 類別(Net3.5)

  • 2086
  • 0

為 Enum 加上 TryParse 功能-新增 EnumHelper(Of T) 類別(Net3.5)

Dotblogs 的標籤: ,

在寫這篇文章時,才發現原來 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

--------
沒什麼特別的~
不過是一些筆記而已