这是我向StackOverflow提出的第二个问题,希望我学会了如何提供足够的信息:)
我正在创建一个c#控制台应用程序,它存储任意数量的用户定义的机器人,然后将任务分配给机器人,并显示这些机器人在控制台上执行任务所需的总时间/总时间。
我希望用户输入一个机器人名称,然后使用在一个名为BotType的类中定义的数字键选择一种机器人类型。还有一个用于机器人的类,我希望它包含botName、botType (希望由BotType类定义)和timeElapsed。然后用AssignBotTask方法调用CompleteTask方法,只对任务进行赋值,然后存储所需的时间和累计时间等。
设置CreateRobot方法的方式是:我希望用户输入机器人名称。(botName)输入机器人类型。(botType)使用机器人类创建机器人。AssignBotTask();显示每个用户定义的机器人等等..。
我很难使用机器人类/构造函数将用户定义的机器人保存到应用程序中。我的想法是将这些信息保存在列表或字典中,这样我就可以在应用程序中进一步添加/删除/查看机器人。在尝试时,我不知道如何将用户定义的值添加到构造器机器人中,然后将它们保存为机器人。我所有的研究都指向固定变量(机器人),用户没有定义它们。
如何将用户定义的botName和botType存储到像这样的机器人类/构造函数中? robotList用于知道用户定义的存在,但botList1试图将它们保存为机器人,但在调试监视中返回以下内容:{Name=“机器人”“FullName=”BotOMat.Robot},但我希望在这里显示用户定义。
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;
}谢谢你的帮助!
发布于 2020-11-19 04:20:57
(如果我理解你想做的正确的话)
你只需要这个:
public static List<Robot> botList = new List<Robot>();为了显示机器人,您的迭代应该按以下方式使用:
private static void displayRobots()
{
foreach(Robot aRobot in botList)
{
Console.WriteLine(aRobot.botName + " type:" aRobot.botType);
}
}https://stackoverflow.com/questions/64905161
复制相似问题