C# Actions/Classes
C# Actions/Classes
我必须设计一个像这样运行的程序。我已经完成了机器人运动的基本代码,但是说明要求我使用 "Action" class 和显示方法。
添加一个名为 Action 的新 class 将公开以下数据:|
1.) 动作类型
2.) 方向
3.) 距离
3.) 显示()
o 动作 class 的 Display 方法应该发出 RobotDirection.X 其中 X 是方向的全名
或 MoveRobot(X) 其中 X 是所选的距离。
o 添加一个动作类型的列表来跟踪用户输入的方向和移动指令
o 添加一个列表框,对于 Actions 列表中的每个项目,调用 Display() 方法并将该信息添加到
列表框
截至目前,我有一个枚举 class 作为:
public enum ActionType
{
Movement,
Direction
}
public enum RobotDirection
{
North,
South,
East,
West
}
在我的操作中 class:
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
class 的问题是你需要一个构造函数和字段,你不应该需要将 Action
传递给你的 Display
方法作为论据。
首先将一些字段添加到您的 Action
class:
public class Action
{
private ActionType type;
private RobotDirection direction;
private int distance;
接下来,在 class 中添加一个构造函数:
public Action(ActionType type, RobotDirection direction, int distance)
{
this.type = type;
this.direction = direction;
this.distance = distance;
}
您可以调用此构造函数来创建一个新的 Action
对象,如下所示:var action = new Action(ActionType.Direction, RobotDirection.North, 10);
您还可以在 Display
方法中使用 this.type
和 this.direction
,并且您的 Display
方法也不需要任何参数(即 Display()
而不是 Display(Action x)
).
您可能感兴趣的最后一件事:Inheritance and Interfaces。您可以创建新的 classes,例如 MovementAction
和 RotateAction
,并让它们实现 IAction
,这将是一个仅包含 Display()
方法的接口.
MovementAction
class 将只包含 ActionType type
和 int distance
的字段。 RotateAction
class 将只包含 ActionType type
和 RobotDirection direction
的字段。他们都将以不同的方式实现 Display()
方法。
我必须设计一个像这样运行的程序。我已经完成了机器人运动的基本代码,但是说明要求我使用 "Action" class 和显示方法。
添加一个名为 Action 的新 class 将公开以下数据:|
1.) 动作类型 2.) 方向 3.) 距离 3.) 显示()
o 动作 class 的 Display 方法应该发出 RobotDirection.X 其中 X 是方向的全名
或 MoveRobot(X) 其中 X 是所选的距离。 o 添加一个动作类型的列表来跟踪用户输入的方向和移动指令
o 添加一个列表框,对于 Actions 列表中的每个项目,调用 Display() 方法并将该信息添加到 列表框
截至目前,我有一个枚举 class 作为:
public enum ActionType
{
Movement,
Direction
}
public enum RobotDirection
{
North,
South,
East,
West
}
在我的操作中 class:
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
class 的问题是你需要一个构造函数和字段,你不应该需要将 Action
传递给你的 Display
方法作为论据。
首先将一些字段添加到您的 Action
class:
public class Action
{
private ActionType type;
private RobotDirection direction;
private int distance;
接下来,在 class 中添加一个构造函数:
public Action(ActionType type, RobotDirection direction, int distance)
{
this.type = type;
this.direction = direction;
this.distance = distance;
}
您可以调用此构造函数来创建一个新的 Action
对象,如下所示:var action = new Action(ActionType.Direction, RobotDirection.North, 10);
您还可以在 Display
方法中使用 this.type
和 this.direction
,并且您的 Display
方法也不需要任何参数(即 Display()
而不是 Display(Action x)
).
您可能感兴趣的最后一件事:Inheritance and Interfaces。您可以创建新的 classes,例如 MovementAction
和 RotateAction
,并让它们实现 IAction
,这将是一个仅包含 Display()
方法的接口.
MovementAction
class 将只包含 ActionType type
和 int distance
的字段。 RotateAction
class 将只包含 ActionType type
和 RobotDirection direction
的字段。他们都将以不同的方式实现 Display()
方法。