public class myWorld
{
public int data;
public void ChangeData()
{
data = 10;
}
}
public class myRobot : myWorld
{
public void robotChangesData()
{
//how can i make the robot change the data in world?
}
}
我了解(或多或少),这不应该做这样了,一直问一千遍,因为每一个变化,应通过方法 - 但:基类变量/直接访问对象的C#
如果我们待在世界和机器人的例子中,后面我想要有一个像这样的机器人的方法:robot.MoveBox(25)
其中机器人必须有权访问世界,一个对象框并更新绘图对象(网格,形状等) 我现在唯一能拿出来的,就是传递机器人的每种方法(如movebox
或robotChangesData
)全世界+方块+绘图s凝灰岩作为'参考',他可以改变它然后.. 但每种方法看起来像robot.MoveBox(25, ref myworldObject, ref myworldBoxes,ref etc etc)
这真的是正确的路要走吗?还是我错过了重要的事情?
一个'Robot'是不是“世界”。你滥用继承。 – SLaks 2013-02-10 14:54:09
你误解了'ref'。 http://www.yoda.arachsys.com/csharp/parameters.html – SLaks 2013-02-10 14:55:03