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
留言列表