"Steven Schveighoffer" <[email protected]> wrote in message news:[email protected]... > On Thu, 30 Jul 2009 14:40:21 -0400, Nick Sabalausky <[email protected]> wrote: > >> "Chad J" <chadj...@__spam.is.bad__gmail.com> wrote in message >> news:[email protected]... >>> Daniel Keep wrote: >>>> >>>> Maybe the compiler could rewrite the above as: >>>> >>>> auto t = a.b; >>>> t.c = 3; >>>> a.b = t; >>>> >>> >>> I'd always suspected C# properties did something like this, though it's >>> been so long since I've used C# now that I'm wondering if it's bad >>> memory. >>> >> >> Same here, so I just did a little test in Visual C# 2008 Express. Turns >> out >> that rewriting *is* exactly what C# does. >> >> Code: >> -------------------------------------- >> using System; >> >> namespace ConsoleApplication1 >> { >> class Program >> { >> class Rect >> { > > > Change Rect to a struct, try again. Classes are reference types (note, I > don't have a C# compiler handy, so I'm not sure what the result is). >
Oops, yea, you're right. With Rect as a struct it fails to compile complaining (in it's own words) that size is not an lvalue.
