2017-07-03 78 views
-3

我有一些问题与开关使用枚举。我的任务是输入国家的名称,然后显示世界的哪一部分是那一个。我无法从键盘读取枚举。我是否犯错误?感谢您的帮助。 `使用枚举和开关c#

class Program 
    { 
     enum Country{ Spain,USA,Japan }; 
     static void Main(string[] args) 
     { 
      Country country = new Country(); 
      Console.WriteLine("Enter the number of country\n 1.Spain \n 2.The USA \n 3.Japan"); 
      country = Console.ReadLine(); 
      switch (country) 
      { 
       case Country.Spain: 
        Console.WriteLine("Its in Europe"); 
        break; 
       case Country.USA: 
        Console.WriteLine("Its in North America"); 
        break; 
       case Country.Japan: 
        Console.WriteLine("Its in Asia"); 
        break;`enter code here` 
      } 
      Console.ReadKey(); 
     } 
    } 
+2

国家是一个字符串 - 你需要将其转换成一个枚举。 – PaulF

+0

你会想解析枚举。请参阅:https://stackoverflow.com/questions/16100/how-should-i-convert-a-string-to-an-enum-in-c – sdgfsdh

+0

lol @'此处输入代码 – Aphelion

回答

0

您需要将字符串TryParse到枚举:

enum Country { Spain, USA, Japan }; 
static void Main(string[] args) 
{ 
    Country country; 
    Console.WriteLine("Enter the number of country\n 1.Spain \n 2.The USA \n 3.Japan"); 
    string input = Console.ReadLine(); 
    bool sucess = Enum.TryParse<Country>(input, out country); 

    if (!sucess) 
    { 
     Console.WriteLine("entry {0} is not a valid country", input); 
     return; 
    } 

    switch (country) 
    { 
     case Country.Spain: 
      Console.WriteLine("Its in Europe"); 
      break; 
     case Country.USA: 
      Console.WriteLine("Its in North America"); 
      break; 
     case Country.Japan: 
      Console.WriteLine("Its in Asia"); 
      break; 
    } 
    Console.ReadKey(); 
}