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中到达mapPlayer.Update()?最明显的解决方案是在map中添加Player.Update()参数。但是这种方式对我来说似乎是错误的。我最近阅读了C ++书,并且了解指针。我正在考虑在map类中添加指向Player的指针,并在Player.Update()中使用它。我知道C#也有指针,但从未使用过它们。在这种情况下使用它们是好事吗?也许有一种不涉及指针的更好的解决方案?我知道我对OOP非常不好。

最佳答案

显然,您需要找出什么是引用类型以及什么是对象引用。这对于使用C#是必不可少的。由于这两个类都是引用类型,因此用该类型声明的所有变量都是对对象的引用。

您可以简单地将Game传递给Player.Update,以传递对现有游戏的引用。

关于c# - 两课互动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27068680/

10-15 02:47