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