"Steven Schveighoffer" <schvei...@yahoo.com> wrote in message 
news:op.uxv89qjieav...@localhost.localdomain...
> On Thu, 30 Jul 2009 14:40:21 -0400, Nick Sabalausky <a...@a.a> wrote:
>
>> "Chad J" <chadj...@__spam.is.bad__gmail.com> wrote in message
>> news:h4oku0$ue...@digitalmars.com...
>>> 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.


Reply via email to