如何将用户输入(字符串)转换为ConsoleColor?

时间:2015-09-13 00:15:55

标签: vb.net

显然,我不想使用14种不同的If语句和两种不同的变量。我正在寻找一种更短更简单的方法,将String转换为各自的ConsoleColor并更改Foreground Color,然后写入标准输出流并询问用户颜色更改是否正确。 VB说“期待表达”。 “Enum”的地方尽管这是我在互联网上任何地方找到的唯一代码,甚至接近我正在寻找的代码。顺便说一句,对不起,我对编程很新。

任何帮助?

Console.WriteLine("WHAT'S YOUR FAVORITE COLOR?")
charlie = Console.ReadLine()

Console.WriteLine("This line is...")
Console.ForegroundColor = CType(Enum.Parse(GetType(ConsoleColor), charlie, true), ConsoleColor)

delta = CStr(charlie)
Console.WriteLine(delta + "? (yes/no)")
Console.ForegroundColor = System.ConsoleColor.Green
foxtrot = Console.ReadLine()

1 个答案:

答案 0 :(得分:2)

进一步反思:由于您不能信任输入字符串,最好使用TryParse而不是Parse

  Dim temp As ConsoleColor

  If [Enum].TryParse(charlie, True, temp) Then
     Console.ForegroundColor = temp
     Console.WriteLine("This line is...{0}? (yes/no)", charlie)
  Else
     Console.WriteLine("{0} is not a valid ConsoleColor name or value", charlie)
  End If