尝试学习C#时 我正在尝试使用Enum和switch语句。如何将用户输入传递给变量,以便让他选择枚举中的选项之一?
传递用户输入的正确方法是什么?
我的代码如下:
using System;
namespace switchDemo
{
class Program
{
enum Movies
{
LOTR,
Starwars,
Matirx
}
static void Main(string[] args)
{
Console.WriteLine("Choose the best movie (LOTR, Starwars, Matirx): ");
Movies bestMovie = Convert.ToString(Console.ReadLine());
//Movies bestMovie = Movies.LOTR;
switch (bestMovie)
{
case Movies.LOTR:
Console.WriteLine("thats correct - LOTR");
break;
case Movies.Matirx:
Console.WriteLine("Martix is not the best");
break;
case Movies.Starwars:
Console.WriteLine("StarWars is 2nd best");
break;
default:
Console.WriteLine("choose an option");
break;
}
Console.WriteLine("Hello World!");
}
}
}
答案 0 :(得分:3)
您可以使用Enum.TryParse方法将string
转换为enum
:
if (Enum.TryParse<Movies>(Console.ReadLine(), ignoreCase: true, out var bestMovie)) {
switch (bestMovie) {
case Movies.LOTR:
break;
case Movies.Starwars:
break;
case Movies.Matirx:
break;
default:
break;
}
} else {
Console.WriteLine("Unknown movie");
}
我知道这只是一种练习,但是由于可用电影的集合可能会发生变化,因此将其公式化为enum
并不是最佳选择。在现实生活中的应用程序中,您将电影信息保存在数据库中(“真实”文件或XML文件,文本文件等)。最好对常量使用枚举。例如
enum DisplayMode
{
Basic,
Advanced
}
由于对相应的显示例程进行了硬编码,因此也可以对模式进行硬编码。