所以我的项目是通过海王星(1-8)为它们的枚举变量创建一个行星,Mecury。我的书大约有2页关于英伦,并不是太多的用途。
我必须创建一个程序,它的Enum标记为Planets...such,如下所示
enum Planet
{
Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
}并提示用户输入一个数字,1-8将显示哪个行星在Enum中处于该位置。
static void Main(string[] args)
{
System.Console.WriteLine("What Planet Are You Looking For? 1-8? ");
string planet1 = System.Console.ReadLine();
}我尝试了大约3种变体,而且都没有给我任何我需要的东西,我可以显示名称,但不能在用户输入。所以我又去抓了。
发布于 2017-09-14 20:06:30
虽然这不能正确地处理参数开关,也不能适当地处理错误,但这里有一种基本方法。让我们知道这对你是怎么回事。:)
System.Console.WriteLine("What Planet Are You Looking For? 1-8? ");
string planet1 = System.Console.ReadLine();
Planet planet = (Planet)Convert.ToInt32(planet1);
System.Console.WriteLine(planet);发布于 2017-09-14 20:01:00
您可以非常简单地将int转换到枚举,如下所示:
if (int.TryParse(Console.ReadLine(), out int planetNum))
{
if (Enum.IsDefined(typeof(Planet), planetNum)
{
Planet myPlanet = (Planet)planetNum;
}
}您将注意到执行了两次检查:我们使用TryParse检查用户是否输入了有效的整数,使用Enum.IsDefined确保他们输入的整数对应于枚举中的行星。
或者,如果希望用户输入行星的名称而不是数字,则可以使用Enum.TryParse。
Enum.TryParse(Console.ReadLine(), out Planet planet1);发布于 2017-09-14 20:13:44
BenGalluzzo
你把它钉在头上
对于其他人.我确实加入了冥王星。
谢谢大家!
这是最后的代码!
class Program
{
enum Planet
{
Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto
}
static void Main(string[] args)
{
Console.WriteLine("What Planet Are You Looking For? Pluto is a planet! 1-9? ");
string planet1 = System.Console.ReadLine();
Planet planet = (Planet)Convert.ToInt32(planet1);
System.Console.WriteLine(planet);
System.Console.WriteLine();
System.Console.ReadLine();https://stackoverflow.com/questions/46227284
复制相似问题