It appears that there are really different discussions about properties. There
is a discussion about letting properties look and act as much as fields, and
there is a discussion about calling member methods on returning structs.
I'd like to seperate these discussions. First, I don't think it is wise to call
a member on a returning struct, because of the expectation that the underlying
object knows about the change. Thus is not true for a struct.
What I want to talk about is a completely different approach to the a.b.c
problem, and with that I just make my own proposal, that is completely
different from any other, which I call groups.
Suppose we have a rather big class with many methods and properties, this could
come in handy. My idea is to introduce groups, in some ways similar to the idea
of namespaces.
class A
{
group bar
{
int foo()
{
return 123;
}
void foo(int i)
{
// do something spectacular
}
}
}
This could be called as:
auto o = new A();
auto i = o.bar.foo;
o.bar.foo = 123;
Fun thing about groups is that it is much more flexible. For example, basic and
advanced methods can be separated, etc.
Just my 2 cents