如何将子项添加到列表C#

时间:2012-10-28 20:27:32

标签: c# polymorphism

好的我是C#的新手并且有一个简单的问题。我现在正在学习XNA,我需要一个可以绘制所有项目的循环。

public class DrawnObject
{
//Declare some Variables
    void draw()
    {
        //Draw Stuff
    }
}

public class child1 : Drawnobject
{
    //More Code
}

public class child2 : Drawnobject
{
    //More Code
}

public class Game1
{
    public List<DrawnObject> drawlist;
    child1 child1object;
    child2 child2object;
    DrawnObject parentobject;

    public void dosomthin()
    {
        drawlist.Add(child1);
        drawlist.Add(child2);
        drawlist.Add(parentobject);
    }
}

这就是我所拥有的,遗憾的是它不起作用。它给了我错误:'ObjectParentTest.child1'是'类型'但是像'变量'一样使用。在此先感谢您的帮助

2 个答案:

答案 0 :(得分:2)

您正在尝试向列表中添加类型,而不是添加对象(您的字段名称为child1objectchild1是您的字段的类型):

drawlist.Add(child1object); // instead of drawlist.Add(child1)
drawlist.Add(child2object); // instead of drawlist.Add(child2)

此外,您需要在将这些变量添加到列表之前为其分配一些值:

public List<DrawnObject> drawlist = new List<DrawnObject>();
child1 child1object = new child1();
child2 child2object = new child2();
DrawnObject parentobject = new DrawnObject();

还有一个提示 - 在C#中我们使用Pascal名称作为类型。因此,最好使用Child1Child2。至少你会看到类型名称的位置,以及变量名称的位置。

答案 1 :(得分:1)

您使用的是child1类型而不是变量child1object,与child2相同。