首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用类/构造函数保存数据时,在C#应用程序中将错误保存到List/Dict中

在使用类/构造函数保存数据时,在C#应用程序中将错误保存到List/Dict中
EN

Stack Overflow用户
提问于 2020-11-19 03:52:18
回答 1查看 32关注 0票数 0

这是我向StackOverflow提出的第二个问题,希望我学会了如何提供足够的信息:)

我正在创建一个c#控制台应用程序,它存储任意数量的用户定义的机器人,然后将任务分配给机器人,并显示这些机器人在控制台上执行任务所需的总时间/总时间。

我希望用户输入一个机器人名称,然后使用在一个名为BotType的类中定义的数字键选择一种机器人类型。还有一个用于机器人的类,我希望它包含botName、botType (希望由BotType类定义)和timeElapsed。然后用AssignBotTask方法调用CompleteTask方法,只对任务进行赋值,然后存储所需的时间和累计时间等。

设置CreateRobot方法的方式是:我希望用户输入机器人名称。(botName)输入机器人类型。(botType)使用机器人类创建机器人。AssignBotTask();显示每个用户定义的机器人等等..。

我很难使用机器人类/构造函数将用户定义的机器人保存到应用程序中。我的想法是将这些信息保存在列表或字典中,这样我就可以在应用程序中进一步添加/删除/查看机器人。在尝试时,我不知道如何将用户定义的值添加到构造器机器人中,然后将它们保存为机器人。我所有的研究都指向固定变量(机器人),用户没有定义它们。

如何将用户定义的botName和botType存储到像这样的机器人类/构造函数中? robotList用于知道用户定义的存在,但botList1试图将它们保存为机器人,但在调试监视中返回以下内容:{Name=“机器人”“FullName=”BotOMat.Robot},但我希望在这里显示用户定义。

代码语言:javascript
复制
    public static Dictionary<string, int> robotList = new Dictionary<string, int>();
    public static List<Robot> botList = new List<Robot>();
    public static List<Type> botList1 = new List<Type>();
    
    public static void createRobot()
    {
        //Get robot name, add to list saving multiple names.
        Console.WriteLine("Enter robot name:");
        string botName = Console.ReadLine();
    
        //Get robot type
        Console.WriteLine("Enter robot type: (number)");
        int botType = Convert.ToInt32(Console.ReadLine());
        if(botType < 1 || botType > 6)
        {
            Console.WriteLine("Invalid input. Please enter number 1-6.");
            botType= 0;
        }
    
        //Add robot to the class storing robot information.
        if(botType > 1 || botType < 6)
        {
            new Robot(botName, botType);
    
            robotList.Add(botName, botType);
            botList1.Add(typeof(Robot));
    
    
            //Robot.AssignBotTask();
            //Leaderboard.checkUserTime(robot);
            //Leaderboard.checkUserProductivity(robot);
        }
        else
        {
            MainMenu();
        }
        
    }
    
    private static void displayRobots()
    {
        foreach(Robot aRobot in botList1)
        {
            Console.WriteLine(aRobot);
        }
        
    }
    
public class Robot
    {
        //Store robot name
        public string botName;

        //Store robot type
        public int botType;

        //Store time to complete task
        private int timeElapsed;

        //Task completed by robot
        public Dictionary<int, BotTask> completeBotTask;

        public Robot(string BotName, int BotType)
        {
            BotName = botName;
            BotType = botType;
            timeElapsed = 0;
        }

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2020-11-19 04:20:57

(如果我理解你想做的正确的话)

你只需要这个:

代码语言:javascript
复制
public static List<Robot> botList = new List<Robot>();

为了显示机器人,您的迭代应该按以下方式使用:

代码语言:javascript
复制
private static void displayRobots()
{
   foreach(Robot aRobot in botList)
   {
       Console.WriteLine(aRobot.botName + " type:" aRobot.botType);
   }        
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64905161

复制
相关文章

相似问题

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