Yet a new properties proposal

Bill Baxter wbaxter at gmail.com
Wed Jul 29 10:33:38 PDT 2009


On Wed, Jul 29, 2009 at 10:20 AM, Dimitar
Kolev<DimitarRosenovKolev at hotmail.com> wrote:
> Okay correct me if I am wrong but why not make properties like that:
>
> class a
> {
>     int #a;
> }
>
> The compiler can expand this to:
>
> int property_a(int new_a)
> {
>     return this.a = new_a;
> }
>
> int property_a()
> {
>      return this.a;
> }
>
> If you think that somebody is going to use property_a for whatever other reason make it property_asdasdasd_a instead of property_a.
>
> Then just call it a#a = 3 or b = a#a =3.
>
> Correct me if I am wrong.

The point is to be able to start with

class Foo
{
   int a;
}

and later change implementation or add access monitoring without
affecting all the code that already acceesses Foo's .a field.
So this should compile both before and after changing Foo.a from a
field to a property:

Foo x;
x.a = 3;
x.a += 3;  // **
writefln("x.a now %s", x.a);

--bb
** this doesn't currently work with D when a() is a function, but it should.



More information about the Digitalmars-d mailing list