位图操作抛出System.ArgumentOutOfRangeException

时间:2016-02-14 01:28:42

标签: c# exception bitmap

我试图编写一段代码来创建黑色位图

Bitmap rectangle = new Bitmap(100, 100);
for (int i = 1; i <= rectangle.Width - 1; i++)
    for (int j = 1; i <= rectangle.Height - 1; j++)
        rectangle.SetPixel(i, j, Color.Black);

但它不断抛出System.ArgumentOutOfRangeException。

1 个答案:

答案 0 :(得分:1)

Bitmap rectangle = new Bitmap(100, 100);
for (int i = 1; i <= rectangle.Width - 1; i++)
    for (int j = 1; i <= rectangle.Height - 1; j++)
        rectangle.SetPixel(i, j, Color.Black);

问题在于你的第二个循环的停止条件:

 i <= rectangle.Height - 1

应该是

 j <= rectangle.Height - 1

我现在这不是'代码审核'问题,但这里有一个建议:避免使用magic numbers 我们只需删除-1并使用<代替<=即可。

Bitmap rectangle = new Bitmap(100, 100);
for (int i = 0; i < rectangle.Width; i++)
    for (int j = 0; j < rectangle.Height; j++)
        rectangle.SetPixel(i, j, Color.Black);