class Game
{
byte[,] map = new byte[5, 5];
Player p;
public Game()
{
p = new Player();
}
public void Update()
{
p.Update();
}
}
class Player
{
public Player()
{
//init...
}
public void Update()
{
//this code needs map
}
}
我怎樣才能達到Game
的map
在Player.Update()
?當然,最有意義的解決方案是將map
參數添加到Player.Update()
。但這種方式對我來說似乎是錯誤的。我最近閱讀C++書籍並瞭解指針。我正在考慮在Player
類中添加指向map
的指針,並在Player.Update()
中使用它。我知道C#也有指針,但從未使用它們。在這種情況下使用它們是好事嗎?或者也許有更好的解決方案,這種情況不涉及指針?我知道我在OOP很糟糕。兩個課堂互動
指針?不是。它是C#,而不是C++。這不適合C#中的指針。 – MarcinJuraszek 2014-11-21 19:20:15
你應該返回一些東西。週期可能會在設計中引起問題。 – 2014-11-21 19:20:16
爲什麼你不想將'map'的值從'Game.Update()'傳遞給'Player.Update()'?或者,如果你想保護'map'實例,那麼你可以將'Game'引用傳遞給'Player.Update()',然後在'Game'中提供方法或屬性來訪問'map'中的信息而不會暴露'map'對象本身。請注意,C#引用類型值(即「引用」)大致等同於C++指針。您不需要使用實際的C#指針來完成相同的結果。 – 2014-11-21 19:21:45