C# 导致项目名称而不是枚举类型的输出?
我试图让用户从枚举列表中进行选择,然后使用开关根据输入获取输出 在这种情况下,使用enum最有效的方法是什么C# 导致项目名称而不是枚举类型的输出?,c#,C#,我试图让用户从枚举列表中进行选择,然后使用开关根据输入获取输出 在这种情况下,使用enum最有效的方法是什么 namespace enum_assignment { class Program { enum transportation { Car = 20, Cab = 10, Bus = 5, Bicycle = 3, }; static void Main(string[] args) {
namespace enum_assignment
{
class Program
{
enum transportation
{ Car = 20,
Cab = 10,
Bus = 5,
Bicycle = 3,
};
static void Main(string[] args)
{
Console.WriteLine("Welcome to Kelvin Transit Center");
Console.WriteLine();
Type enumType;
enumType = typeof(transportation);
Console.WriteLine("Available transit methods:{0}", Environment.NewLine);
foreach (int value in Enum.GetValues(enumType))
Console.WriteLine("{0}:{1} dollars", Enum.GetName(enumType, value), value);
Console.WriteLine("Please enter your method of transporatation: Car,Bus,Cab,Bicycle");
Console.ReadLine();
transportation defaultMthd = transportation.Bicycle;
foreach (int value in Enum.GetValues(enumType))
switch(defaultMthd)
{
case transportation.Bicycle:
Console.WriteLine("Thank you for choosing {0},it is {1} every hour.",enumType, value);
break;
case transportation.Bus:
Console.WriteLine("Thank you for choosing {0},it is {1} every hour.",enumType, value);
break;
case transportation.Cab:
Console.WriteLine("Thank you for choosing {0},it is {1} every hour.",enumType, value);
break;
case transportation.Car:
Console.WriteLine("Thank you for choosing {0},it is {1} every hour.",enumType, value);
break;
}
Console.WriteLine();
Console.ReadKey();
}
}
}您需要阅读用户的输入:
var userInput = Console.ReadLine();
然后对其进行分析以获得所选的方法:
transportation method = (transportation)Enum.Parse(enumType, userInput);
然后在打印时,再次打印用户输入:
Console.WriteLine("Thank you for choosing {0},it is {1} every hour.", userInput, value);
一旦你有这个工作,你可能会发现程序崩溃,如果用户输入一个无效的输入。在这种情况下,你会想看看。我将把其余的留给您解决。此代码面临什么问题?你试过调试代码吗?您要求用户输入运输方式,但您没有将用户输入的值保存在任何地方…您没有使用从
控制台获得的值。ReadLine
还请注意,您的开关根本不起任何作用,因为在任何情况下,您都执行完全相同的代码,并不是说它解决了您的问题,而是如果您删除整个开关块并用Console.WriteLine替换它,删除大量代码可以帮助您自己找到问题(“感谢您选择{0},它是每小时{1}”,enumType,value);然后你会得到和现在一样的东西