Строка (не просто буква) в ConsoleKey c # - PullRequest
0 голосов
/ 16 марта 2019

Так что мне нужно преобразовать строку в ConsoleKey ...

Да, что-то вроде этого работает:

string ch = "a";
ConsoleKey ck = (ConsoleKey)Convert.ToChar(ch);

Но что, если строка похожа на «UpArrow» (строка изReadKey ввода и сохранены в текстовом файле)

Пожалуйста, помогите.

1 Ответ

1 голос
/ 16 марта 2019

Вы можете преобразовать строку в член перечисления, используя Enum.Parse или Enum.TryParse.

К сожалению, API не является универсальным, поэтому вам необходимоукажите тип несколько раз:

ConsoleKey key1 = (ConsoleKey)Enum.Parse(typeof(ConsoleKey), "UpArrow");

Выше приведено исключение, если строка не является членом перечисления.Для защиты от этого вы можете использовать:

if (Enum.TryParse("UpArrow", out ConsoleKey key2))
{
    // use 'key2' in here
}
...