Properties: a.b.c = 3

Nick Sabalausky a at a.a
Thu Jul 30 12:03:59 PDT 2009


"Steven Schveighoffer" <schveiguy at yahoo.com> wrote in message 
news:op.uxv89qjieav7ka at localhost.localdomain...
> On Thu, 30 Jul 2009 14:40:21 -0400, Nick Sabalausky <a at a.a> wrote:
>
>> "Chad J" <chadjoan at __spam.is.bad__gmail.com> wrote in message
>> news:h4oku0$uel$1 at 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.





More information about the Digitalmars-d mailing list