перечисление выбрать с помощью переменной VB - PullRequest
0 голосов
/ 07 ноября 2011

У меня есть случай, когда мое перечисление выглядит следующим образом:

Public Const PREVIEWCREATE As Integer = -3
Public Const SETUP As Integer = -2
Public Const PREVIEW As Integer = -1

У меня тогда есть форма сообщения, где я восстанавливаю строку вроде:

Dim mode_custom_mode = request.Form("custom_mode")

Я могу сделать

Select Case UCase(mode_custom_mode)

    Case "PREVIEWCREATE"
        t.StartupModeId = StartupMode.PREVIEWCREATE
    Case "SETUP"
        t.StartupModeId = StartupMode.SETUP 
...

есть ли в VB более прямой способ сделать что-то вроде:

t.StartupModeId = StartupMode. (Mode_custom_mode) ?????

Ответы [ 3 ]

0 голосов
/ 31 января 2012

Вы имеете в виду, как разбирать String в Enum? Попробуйте это:

Private Enum StartupMode
    PREVIEWCREATE
    SETUP
    PREVIEW
End Enum

t.StartupModeId = DirectCast([Enum].Parse(GetType(StartupMode), mode_custom_mode), StartupMode)

и то же самое с:

t.StartupModeId = DirectCast([Enum].Parse(GetType(StartupMode), "PREVIEWCREATE"), StartupMode)
0 голосов
/ 22 апреля 2016

Это правильный способ сделать это.

private enum StartupMode
    PREVIEWCREATE = -3
    SETUP = -2
    PREVIEW  = -1
end enum

t.StartupModeId = [Enum].Parse(GetType(StartupMode), mode_custom_mode)
0 голосов
/ 07 ноября 2011

Я считаю, что это то, что вы хотели бы

private enum StartupMode
    PREVIEWCREATE = -3
    SETUP = -2
    PREVIEW  = -1
end enum

t.StartupModeId = [Enum].Parse(GetType(StartupMode), mode_custom_mode)
...