Enum Type 在許多地方非常好用,讓 程式更容易了解 且  效率更佳

但在有些時候 已知 Enum 內所代表的值,需要取得  此值所代表的 參數

 

數量不多時 用 Select case 是一種方法,但 數量一多  需要寫一長串的程式碼來判斷 所代表的 參數

這時可用 Ctype 來反轉值  來取得 參數名   或用將參數 轉成所代表的值

下面 有 32種參數 即 各代表的值  ( 意義就請別太計較......個人程式使用)

 

  Public Enum ELtype As Byte
        PLOO = 0           
        PLOF = 1
        PLFO = 2
        PLFF = 3
        Gh = 4
        GhL = 5
        GhR = 6
        GI = 7
        GIL = 8
        GIR = 9
        Rp = 10
        RpL = 11
        RpR = 12
        Rn = 13
        RnL = 14
        RnR = 15
        XON = 16
        BIN2 = 17
        BIN3 = 18
        oVdd = 19
        oVddL = 20
        oVddR = 21
        oVss = 22
        oVssL = 23
        oVssR = 24
        CT_EN = 25
        CT_R = 26
        CT_G = 27
        CT_B = 28
        TK_R = 29
        TK_G = 30
        TK_B = 31
    End Enum

首先  我們想知道    0 , 5 , 20 , 31 各代表甚麼

 

 Dim El1 as string = CType(0, ELtype).toString
 Dim El2 as string = CType(5, ELtype).toString
 Dim El3 as string = CType(20, ELtype).toString
 Dim El4 as string = CType(31, ELtype).toString

可以得到

PLOO
GHL
oVddL
TK_B

 

反過來 如果我們 有 字串 想知道  在 Enum 所代表的值

PLOF,RpR,TK_B

Dim m1 As Byte= [Enum].Parse(GetType(ELtype), "PLOF")
Dim m1 As Byte= [Enum].Parse(GetType(ELtype), "RpR")
Dim m1 As Byte= [Enum].Parse(GetType(ELtype), "TK_B")

如此就可以得到

m1 = 1
m2 = 12
m3 = 31

 

有點要注意的是   搜尋   參數名時 如果 沒有對應的值   會返回   輸入的 數字

但用參數在搜尋相對應的值  如果沒有設定 此參數  會引發錯誤,要先做好預防 Exception

 

 

 

 

arrow
arrow
    文章標籤
    Enum Ctype
    全站熱搜

    Rh 發表在 痞客邦 留言(0) 人氣()