2016-03-30 79 views
2

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

我已经找到了解决方案,但它不工作:

Keys key; 
Enum.TryParse("Enter", out key); 

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

在此先感谢。

回答

6

这听起来像你有另一个类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); 
    } 
} 

如果您注释掉代码编译得很好,这就是为什么我怀疑你已经在某个地方得到这个类的原因 - 或者是一个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); 
    } 
} 
+0

感谢您的解释! – John