Enum Test
hoge
koge
toge
End Enum
とEnumを宣言し、
Dim ggg As Test = CType("hoge", Test)
のように文字列から呼び出したいのですが
うまくいきません。
Dim ggg As Test = CType(0, Test)
のようにIntegerならうまくいくのですが・・・・
文字列だと無理なのでしょうか?
CTypeで直接は無理ですね。 Dim v As String ' "hoge"が入ってるとする Dim t As Test = CType(Enum.Parse(GetType(Test), v), Test) のようにすることになります。 大文字小文字を同一視したい場合、Enum.Parseに第3引数としてTrueを追加で渡します。 変換に失敗する可能性がある場合、Enum.TryParseというメソッドを使うこともできます。
> エラー BC30209 Option Strict On では、すべての変数宣言に 'As' 句が必要です。 > エラー BC30944 キャスト演算子の構文エラーです。コンマで区切られた 2 つの引数が必要です。 前者はどこで出たエラーなのかわからないのでコメントできません。 後者については、以下のようにコーディングする必要がありました。 Dim t As Test = CType([Enum].Parse(GetType(Test), v), Test)