首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# Enums...and用户输入

C# Enums...and用户输入
EN

Stack Overflow用户
提问于 2017-09-14 19:57:25
回答 5查看 7.1K关注 0票数 1

所以我的项目是通过海王星(1-8)为它们的枚举变量创建一个行星,Mecury。我的书大约有2页关于英伦,并不是太多的用途。

我必须创建一个程序,它的Enum标记为Planets...such,如下所示

代码语言:javascript
复制
enum Planet
{
    Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
}

并提示用户输入一个数字,1-8将显示哪个行星在Enum中处于该位置。

代码语言:javascript
复制
static void Main(string[] args)
{

    System.Console.WriteLine("What Planet Are You Looking For? 1-8? ");
    string planet1 = System.Console.ReadLine();
}

我尝试了大约3种变体,而且都没有给我任何我需要的东西,我可以显示名称,但不能在用户输入。所以我又去抓了。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-09-14 20:06:30

虽然这不能正确地处理参数开关,也不能适当地处理错误,但这里有一种基本方法。让我们知道这对你是怎么回事。:)

代码语言:javascript
复制
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);
票数 1
EN

Stack Overflow用户

发布于 2017-09-14 20:01:00

您可以非常简单地将int转换到枚举,如下所示:

代码语言:javascript
复制
if (int.TryParse(Console.ReadLine(), out int planetNum))
{
    if (Enum.IsDefined(typeof(Planet), planetNum)
    {
        Planet myPlanet = (Planet)planetNum;
    }
}

您将注意到执行了两次检查:我们使用TryParse检查用户是否输入了有效的整数,使用Enum.IsDefined确保他们输入的整数对应于枚举中的行星。

或者,如果希望用户输入行星的名称而不是数字,则可以使用Enum.TryParse

代码语言:javascript
复制
Enum.TryParse(Console.ReadLine(), out Planet planet1);
票数 4
EN

Stack Overflow用户

发布于 2017-09-14 20:13:44

BenGalluzzo

你把它钉在头上

对于其他人.我确实加入了冥王星。

谢谢大家!

这是最后的代码!

代码语言:javascript
复制
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();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46227284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档