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