2017-07-03 1 views
-3

Ich habe ein paar Probleme mit der Verwendung von enums mit switch.My Aufgabe ist es, den Namen des Landes eingeben und dann zeigen, welcher Teil der Welt ist dieser. Ich kann keine Enums von der Tastatur lesen. Habe ich Fehler gemacht? Danke für die Hilfe. `Verwenden von enums und wechseln 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

Land ist ein String - Sie, dass zu einem Enum umwandeln müssen. – PaulF

+0

Sie wollen die Enum analysieren. Siehe: https://stackoverflow.com/questions/16100/how-should-i-convert-a-string-to-an-enum-in-c – sdgfsdh

+0

lol @ 'Code hier eingeben' – Aphelion

Antwort

0

Sie müssen die Zeichenfolge in Enum 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(); 
}