Не зная сигнатуру функции, на это довольно сложно ответить, но я думаю, что вы ищете Enum.TryParse : объявите перечисления eCurrentState
и eStable_state_ENDDR
, затем используйте
Enum.TryParse(currentState, out eCurrentState);
Enum.TryParse(stable_state_ENDDR, out eStable_state_ENDDR);
path = StatePath.statePath(eCurrentState, eStable_state_ENDDR);
В случае сбоя TryParse
возвращается false
.
При этом общее правило состоит в том, чтобы избегать подобных сценариев ios и передавать перечисления как int
или bit flags
, это потому, что внутри хранятся перечисления, и не требуется никакой функции преобразования, чтобы замедлить вас. По сути, SomeEnum == someIntValue
будет работать напрямую без какого-либо преобразования. Таким образом, предполагая, что вы получаете данные с какого-либо сервера / базы данных, просто запросите данные в виде значения цифра c, равного индексу перечисления, объявленного в . И наоборот, сохраните данные таким же образом.
, например, с любым перечислением, без объявленных атрибутов
enum SomeEnum
{
abc, // 0
def, // 1
g // 2
}
abc == 0
, def == 1
, g == 2
, вернет true.