所以我在C#上上课,目前我正在尝试采用一个相当简单的程序并使其更复杂一些。然而,我的googlefu技能并不是很有效。我希望得到一些帮助和一点解释,因为在线解释它的一切都是从专家角度做的,而不是一个新的角度。
所以基本上有一个枚举器类型声明,我知道你可以插入代码行,所以开关可以根据定义或选择的内容做出决定。但是,我希望以交互方式进行此操作,以便用户可以从枚举列表中输入值,然后让切换功能发挥其魔力。我尝试了一些不同的东西,没有任何作用。请注意,我是一个perl,PHP和PowerShell程序员,我已经尝试了一些适用于所有这些的东西,但我无法让它正确地解决。 Anywho,下面是代码。非常感谢任何帮助!!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Program
{
enum Color
{
red,
orange,
blue,
black,
white,
green,
purple,
yellow
}
static void Main(string[] args)
{
Color favorite = Color + Console.ReadLine();
switch (favorite)
{
case Color.red:
Console.WriteLine("You chose red!");
break;
case Color.orange:
Console.WriteLine("you chose orange!!!!!!");
break;
case Color.blue:
Console.WriteLine("YOU CHOSE BLUEEEE!!");
break;
case Color.black:
Console.WriteLine("you chose black");
break;
case Color.white:
Console.WriteLine(" you chose white!")
break;
case Color.green:
Console.WriteLine("you chose green!!!!!");
break;
case Color.purple:
Console.WriteLine("you chose purple!!");
break;
case Color.yellow:
Console.WriteLine("you chose yellow!!!");
break;
}
Console.ReadLine();
}
}
}
答案 0 :(得分:3)
您正在寻找Enum.TryParse方法。它会将字符串转换为枚举类型,如果字符串无法转换为枚举,则返回false。
Color favorite
if (Enum.TryParse(Console.ReadLine(), out favorite)) {
// You're switch goes where
}
else {
Console.WriteLine("That's not a color!");
}
答案 1 :(得分:0)
如果您输入的内容为" Red"," Orange"等,那么您可以使用Enum.Parse():
var favorite = (Color)Enum.Parse(typeof(Color), Console.ReadLine());
如果用户输入了错误的颜色,则会抛出异常,在这种情况下,您可以使用TryParse。
答案 2 :(得分:0)
更改收藏夹的分配。
var input = Console.ReadLine();
var favorite = (Color)Enum.Parse(typeof(Color), input);