2017-07-03 76 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(); 
}