我有一个绘制方法应该绘制一个框,但我的问题是它只绘制框的宽度,而不是高度。
以下是代码段:
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()
方法,我无法将其打印出来,那么如何解决这个简单的问题?
答案 0 :(得分: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(' ');
}
}