C#从字符串解析为Keys

Joh*_*ohn 2 c#

目前我必须以某种方式从字符串解析到Keys.所以基本上作为输入我得到类似"Keys.Shift"的东西,并且我需要能够将其解析为键,以便我可以在应用程序中进一步使用它.

我找到了一个解决方案,但它不起作用:

Keys key;
Enum.TryParse("Enter", out key);
Run Code Online (Sandbox Code Playgroud)

我得到一个"静态类型不能用作类型参数".有人知道解决方法或其他什么吗?

提前致谢.

Jon*_*eet 7

听起来你有另一个叫做Keys某个地方的课程.这是一个展示相同问题的例子(虽然key你没有提到的声明周围有第二个错误;我怀疑你也有这个错误):

using System;
using System.Windows.Forms;

static class Keys {}

class Program
{
    static void Main()
    {
        Keys key;
        Enum.TryParse("Enter", out key);
        Console.WriteLine(key);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果你注释掉static class Keys {}代码编译得很好,这就是为什么我怀疑你在某个地方有这个类 - 或者是using从另一个库中带来类似内容的指令.

最简单的解决方法是完全限定Keys您的意思:

using System;
using System.Windows.Forms;

static class Keys {}

class Program
{
    static void Main()
    {
        System.Windows.Forms.Keys key;
        Enum.TryParse("Enter", out key);
        Console.WriteLine(key);
    }
}
Run Code Online (Sandbox Code Playgroud)