C#行动/类别
我必须设计一个这样运行的程序。我已经完成了机器人运动的基本代码,但是方向要求我使用带有显示方法的“Action”类 添加名为Action的新类,该类将公开以下数据段:| 1.)动作类型 2)方向 3.)距离 3.)显示() o Action类的Display方法应发出RobotDirection.X,其中X是方向的全名 或移动机器人(X),其中X是选定的距离。 o添加类型操作列表,以跟踪用户输入的方向和移动指令 o添加一个列表框,对于操作列表中的每个项目,调用Display()方法并将该信息添加到 列表框 截至目前,我有一个enums类,如下所示:C#行动/类别,c#,class,object,action,C#,Class,Object,Action,我必须设计一个这样运行的程序。我已经完成了机器人运动的基本代码,但是方向要求我使用带有显示方法的“Action”类 添加名为Action的新类,该类将公开以下数据段:| 1.)动作类型 2)方向 3.)距离 3.)显示() o Action类的Display方法应发出RobotDirection.X,其中X是方向的全名 或移动机器人(X),其中X是选定的距离。 o添加类型操作列表,以跟踪用户输入的方向和移动指令 o添加一个列表框,对于操作列表中的每个项目,调用Display()方法并将该信息添加
public enum ActionType
{
Movement,
Direction
}
public enum RobotDirection
{
North,
South,
East,
West
}
在我的行动课上:
public String Display(Action x)
{
String robotAction = null;
if(x.ActionType == ActionType.Direction)
{
if(x.Direction == RobotDirection.North)
{
robotAction = "RobotDirection.North";
}
else if(x.Direction == RobotDirection.East)
{
robotAction = "RobotDirection.East";
}
else if(x.Direction == RobotDirection.South)
{
robotAction = "RobotDirection.South";
}
else if(x.Direction == RobotDirection.West)
{
robotAction = "RobotDirection.West";
}
}
else if (x.ActionType == ActionType.Movement)
{
robotAction = "MoveRobot(" + Distance + ")";
}
return robotAction;
}
}
如何调用Display方法来填充列表框
谢谢大家! 您应该对字符串调用此方法:
string specificAction = Display(/*any action*/)
然后将字符串添加到列表框:
yourListBox.Items.Add(specificAction)
希望有帮助 您的
Action
类的问题在于您需要一个构造函数和字段,并且不需要将Action
作为参数传递给Display
方法
首先将一些字段添加到操作
类:
public class Action
{
private ActionType type;
private RobotDirection direction;
private int distance;
接下来,在类中添加构造函数:
public Action(ActionType type, RobotDirection direction, int distance)
{
this.type = type;
this.direction = direction;
this.distance = distance;
}
您可以调用此构造函数来创建一个新的Action
对象,如下所示:var Action=newaction(ActionType.Direction,RobotDirection.North,10)代码>
您还可以在Display
方法中使用this.type
和this.direction
,并且Display
方法也不需要任何参数(即Display()
而不是Display(Action x)
)
最后一件你可能感兴趣的事情:和。您可以创建新类,例如MovementAction
和RotateAction
,并使它们实现iaAction
,该接口将成为仅包含Display()
方法的接口
MovementAction
类将只包含ActionType
和int-distance
的字段。RotateAction
类将只包含ActionType
和RobotDirection
的字段。它们都将以不同的方式实现Display()
方法。对不起,我在你的帖子中没有看到问题/问题是什么。我的问题是我不知道如何正确使用Display方法填充列表框。虽然我有Display方法,但没有任何东西将其连接到Listbox,而且我不确定x。在本例中代表。@user7200174您看过的文档了吗?是的,我看过,通常我只会硬编码按钮以向列表框中添加一个项目,但必须结合使用显示方法和枚举来填充列表框。@user7200174好的。如果我理解正确,方向和移动说明由用户输入。当用户添加指令时,您需要创建一个新的Action
对象,其中包含指令的详细信息。此操作
对象需要添加到列表
。输入所有指令后,您需要从列表中的每个操作调用Display()
,并将其添加到您的列表框中(例如,像foreach(myActionList中的var a){yourListBox.Items.add(a.Display());}
。问题说明如下:“添加一个类型动作列表,以跟踪用户输入的方向和移动指令”。您的答案不包括这一点,但我同意,如果此列表除跟踪输入动作外,不用于任何其他用途,则您的解决方案是正确的,因为在这种情况下,此列表毫无用处。