c#将类的列表调用到另一个类中

时间:2016-09-21 14:00:20

标签: c#

所以即时尝试将类调用为方法。但它生气,因为这个方法不会要求列表,我所做的类是一个列表。我尝试制作一个不是列表的单独变量,但是当我运行程序时它似乎没有用。

它的“egg.BounceRock(rocks);”在世界级的run方法下;

世界级

public class World
{

    private List<Rock> rocks;
    private Egg egg;
    private Board board;

    private Graphics graphics;
    public World()
    {
        egg = new Egg();
        board = new Board();
        rocks = new List<Rock>();
        rocks.Add(new Rock(graphics, new Point(RockstartX, RockstartY), Color.Black));
        rocks.Add(new Rock(graphics, new Point(Rock2startX, Rock2startY), Color.Black));
    }
    public void Run()
    {
        foreach(Rock rock in rocks)
        {
            rock.Draw();
        }
        egg.Draw();
        egg.BounceRock(rocks);
        egg.BounceBoard(board);  
        egg.BounceFloor();          
    }
 }

蛋类

public class Egg
{

    public Egg()
    {

    }
    public void Draw()
    {

    }
    public void BounceFloor()
    {

    }
    public void BounceBoard(Board board)
    {

    }
    public void BounceRock(Rock rock)
    {

    }
}

1 个答案:

答案 0 :(得分:1)

public class Egg
{
    public void BounceRock(Rock rock)
    {
        // Bounce the rock...
    }

    public void BounceRocks(List<Rock> rocks)
    {
        foreach(Rock rock in rocks)
        {
            BounceRock(rock);
        }
    }
}

所以你的鸡蛋知道如何弹跳一块岩石,但它不知道如何反弹一堆岩石......然而!通过添加一个以岩石列表作为参数的新方法,您可以遍历列表中的每个岩石,并使用原始的反弹方法来反弹每个岩石。