Walter Bright wrote: > The issue is what if b is a property, returns a temporary object, and > that temp's .c field is uselessly set to 3? > > It's a classic problem with properties that are implemented as functions. > > I don't see how C#'s special property syntax adds any value for dealing > with this. > > One thought I had was to simply disallow the '.' to appear after a > function style property.
Maybe the compiler could rewrite the above as: auto t = a.b; t.c = 3; a.b = t; Unless it can prove it doesn't need to. Same solution as to the op= conundrum.
