所以我需要将字符串转换为ConsoleKey ...
是这样的:
string ch = "a";
ConsoleKey ck = (ConsoleKey)Convert.ToChar(ch);
但是如果字符串类似于“ UpArrow”(该字符串来自ReadKey输入并保存到txt文件)怎么办
请帮助。
答案 0 :(得分:1)
您可以使用Enum.Parse
或Enum.TryParse
将字符串转换为枚举成员。
不幸的是,API不是通用的,因此您必须多次指定类型:
ConsoleKey key1 = (ConsoleKey)Enum.Parse(typeof(ConsoleKey), "UpArrow");
如果字符串不是枚举的成员,则以上内容将引发异常。为了防止这种情况,您可以使用:
if (Enum.TryParse("UpArrow", out ConsoleKey key2))
{
// use 'key2' in here
}