1

我有一个draw方法应该画出一个盒子,但我的问题是它只画出盒子的宽度,而不是高度。

这是一个代码片段:

class ColoredBox : Box
{
    protected ConsoleColor backColor;

    public ColoredBox(Point p, int width, int height, ConsoleColor backColor)
        : base(p, width, height)

    {
        this.backColor = backColor;
    }

    public virtual void Draw()
    {
        for (int j = 0; j < height; j++)
        {
            Console.SetCursorPosition(p.X, p.Y);
            Console.BackgroundColor = backColor;
            for (int i = 0; i <= width; i++)
                Console.Write(' ');
    }
}

问题似乎是Draw()方法,我无法打印出来,那么我该如何解决这个简单的问题呢?

4

1 回答 1

1

j为下一行设置光标位置时,您没有使用。代码应为:

public virtual void Draw()
{
    for (int j = 0; j < height; j++)
    {
        Console.SetCursorPosition(p.X, p.Y + j);
        Console.BackgroundColor = backColor;
        for (int i = 0; i <= width; i++)
            Console.Write(' ');
    }
}
于 2013-02-11T10:57:08.490 回答