digitalmars.D - Properties in C# and prop_Foo
- Bill Baxter (16/16) Aug 08 2009 Interesting thing I found out about C# properties.
- grauzone (9/29) Aug 09 2009 C# doesn't allow you to directly call the accessors (which are named
- Bill Baxter (5/33) Aug 09 2009 t's
- Steven Schveighoffer (10/44) Aug 10 2009 It used to be in C++.NET (at least the .NET 1.0 version) you HAD to
The syntax int Thing { get { return _thing; } set { _thing = value; } } int prop_Thing() { return _thing; } void prop_Thing(int value) { _thing = value; } Just thought it was interesting given all our discussions, 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 --bb
Aug 08 2009
Bill Baxter wrote:The syntax int Thing { get { return _thing; } set { _thing = value; } } int prop_Thing() { return _thing; } void prop_Thing(int value) { _thing = value; } Just thought it was interesting given all our discussions, 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 outset_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). it's just that on the lowest level, it is mapped to normal methods + extra metadata. That's probably not quite what was proposed.--bb
Aug 09 2009
On Sun, Aug 9, 2009 at 11:25 AM, grauzone<none example.net> wrote:Bill Baxter wrote:ithThe syntax int Thing { =A0 get { return _thing; } =A0 set { _thing =3D value; } } int prop_Thing() { return _thing; } void prop_Thing(int value) { _thing =3D value; } Just thought it was interesting given all our discussions, was proposing we use for D's syntax. =A0And 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. =A0Well, it turns outset_Thing and get_Thing, btw.). It also creates and associates metadata w=the property (so that you know that "Thing" is supposed to be a property with these setters and getters).t'sjust 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
Aug 09 2009
On Sun, 09 Aug 2009 15:53:23 -0400, Bill Baxter <wbaxter gmail.com> wrote:On Sun, Aug 9, 2009 at 11:25 AM, grauzone<none example.net> wrote:It used to be in C++.NET (at least the .NET 1.0 version) you HAD to call/define properties that way ;) I think they've since added syntax to C++.Net to have more friendly property access. I'm not sure if you can still call the get_/set_ versions, but knowing Microsoft's propensity for backwards compatibility, you probably can... though I've never found a need to. One possible reason is to pass it as a delegate. -SteveBill Baxter wrote:I see. I thought you could call get_Thing, set_Thing directly.The syntax int Thing { get { return _thing; } set { _thing = value; } } int prop_Thing() { return _thing; } void prop_Thing(int value) { _thing = value; } Just thought it was interesting given all our discussions, 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 outset_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). it's just that on the lowest level, it is mapped to normal methods + extra metadata.
Aug 10 2009