2016-03-30 22 views
2

Şu anda dizeden Keys'e bir şekilde ayrıştırmak zorundayım. Yani temel olarak girdi olarak "Keys.Shift" gibi bir şey alıyorum ve bir şekilde bunu tuşlara ayrıştırmam gerekiyor, bu yüzden uygulamada daha fazla kullanabiliyorum.C# dizgeden parşöbe parse

Bir çözüm bulduk ama çalışmıyor:

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

Ben bir "statik tip tip argümanları olarak kullanılamaz" olsun. Birisi bir çözüm veya bir şey biliyor mu?

Şimdiden teşekkürler.

cevap

6

Bir yerde Keys adlı başka bir sınıfa sahip olduğunuz anlaşılıyor. (Eğer bahsetmedim key ilan etrafında bir ikinci hata var olsa, ben sizin de olsa o hata var sanıyorum) İşte aynı sorunu gösteren bir örnek:

using System; 
using System.Windows.Forms; 

static class Keys {} 

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

dışarı yorum yaparsanız static class Keys {} kodu iyi derler, bu yüzden bu sınıfı bir yerden aldığınızdan şüpheleniyorum - ya da başka bir kitaplıkta benzer bir şey getiren using yönergesi. açıklama için

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

Teşekkür:

En basit düzeltme sadece hangi Şunu Keys tipi tam hak etmektir! – John