【问题标题】:Using enums and switch c# [duplicate]使用枚举和切换 c# [重复]
【发布时间】:2017-07-03 09:58:00
【问题描述】:

我在使用带有 switch 的枚举时遇到了一些问题。我的任务是输入国家的名称,然后显示世界的哪个部分是那个国家。我无法从键盘读取枚举。我犯错了吗?感谢您的帮助。 `

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();
        }
    }

【问题讨论】:

标签: c# enums switch-statement


【解决方案1】:

你需要将TryParse的字符串转换成Enum:

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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多