public static class RectangleExtension
{
public static Rectangle Offseted(this Rectangle rect, int x, int y)
{
rect.X += x;
rect.Y += y;
return rect;
}
}
....
public void foo()
{
Rectangle rect;
rect = new Rectangle(0, 0, 20, 20);
Console.WriteLine("1: " + rect.X + "; " + rect.Y);
rect.Offseted(50, 50);
Console.WriteLine("2: " + rect.X + "; " + rect.Y);
rect = rect.Offseted(50, 50);
Console.WriteLine("3: " + rect.X + "; " + rect.Y);
}
輸出:C#呼叫
1:0; 0
2:0; 0
3:50; 50
我的預期:
1:0; 0
2:50; 50
爲什麼rect.Offseted(50,50)不能修改步驟2中矩形的x和y?
我需要用我的RectangleExtension方法來獲得預期的結果?
(參照RECT).Offseted(50,50); –