"Steven Schveighoffer" <[email protected]> wrote in message news:[email protected]... > On Thu, 30 Jul 2009 14:09:06 -0400, Nick Sabalausky <[email protected]> wrote: > >> "Zhenyu Zhou" <[email protected]> wrote in message >> news:[email protected]... >>> >>> e.g. >>> Rectangle rect(Rectangle r) { >>> _rect = r; >>> redraw(); >>> return _rect; >>> } >>> >>> If you allow >>> widget.rect.w = 200; >>> widget.rect.h = 100; >>> you will have to write much more code to handle the painting correctly. >>> and we don't want to call redraw twice here >>> >> >> I've dealt with that sort of thing in C# and it's a trivial issue. When >> you >> write code such as the above, it's very clear that you're changing the >> rect >> twice. If that's a problem, you just do this: >> >> widget.rect = Rect(200, 100); > > Rect has 4 values (x, y, width, height), otherwise, the example doesn't > make much sense. >
I've dealt with that as well, and done both of these (though not at the same time obviously ;) ): - widget.rect = Rect(widget.rect.x, widget.rect.y, 200, 100); - Cache the reference manually. So still easy.
