В моем коде я хотел бы работать с текстовыми именами элементов, которые закодированы как один символ в пакетах.Как использовать Switch со значениями словаря?
В обычной ситуации 1012
будет означать для меня cat, dog, cat, frog
, но таких пар еще много, поэтому их сложно запомнить. Иногда их нужно менять, поэтому я решил использовать для этой цели Dictionary<string, int>
. Но потом ...
switch (symbol)
{
case "0": { /* ... */ }
case "1": { /* ... */ }
case "2": { /* ... */ }
case "n": { /* ... */ }
}
... становится ...
switch (symbol)
{
case kvpDic["cat"]: { /* ... */ }
case kvpDic["dog"]: { /* ... */ }
case kvpDic["frog"]: { /* ... */ }
case kvpDic["something else"]: { /* ... */ }
}
и студия говорит, что нужно использовать константы для моего коммутатора.
Как это сделать?
Обно: число таких животных и их пар значений известно только во время выполнения, так что код не должен использовать константы (я думаю).
Что вы делаете в блоках переключателей? В основном вы * не будете * иметь возможность включать непостоянные значения, поэтому вам нужно подумать о * некоторой * альтернативе. Существуют различные варианты, но нам нужна дополнительная информация. –
А вы думали об использовании 'enum' вместо этого? Или значения изменяются во время выполнения? –
Я назначаю Texture2D новому спрайту, и они уникальны для каждой ситуации. – user1306322