2016-03-30 113 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