On Sun, Aug 9, 2009 at 11:25 AM, grauzone<[email protected]> wrote: > Bill Baxter wrote: >> >> Interesting thing I found out about C# properties. >> The syntax >> >> int Thing { >> get { return _thing; } >> set { _thing = value; } >> } >> >> is rewritten by the C# compiler into >> >> int prop_Thing() { return _thing; } >> void prop_Thing(int value) { _thing = value; } >> >> Just thought it was interesting given all our discussions, >> particularly that the syntax C# translates into is exactly what Andrei >> was proposing we use for D's syntax. And I think I even said that was >> fine, but let's have a different syntax for declaring that the D >> compiler translates into those prop_Thing methods. Well, it turns out >> that's exactly what C# does. > > C# doesn't allow you to directly call the accessors (which are named > set_Thing and get_Thing, btw.). It also creates and associates metadata with > the property (so that you know that "Thing" is supposed to be a property > with these setters and getters). > > In C# (as in the language) properties still work as cast into concrete; it's > just that on the lowest level, it is mapped to normal methods + extra > metadata.
I see. I thought you could call get_Thing, set_Thing directly. --bb
