[fpc-devel] Property overloading vs. property array enumerators
Ondrej Pokorny
lazarus at kluug.net
Thu Jan 28 21:50:10 CET 2016
On 28.01.2016 20:02, Kazantsev Alexey wrote:
> On Thu, 28 Jan 2016 22:33:39 +0400, Ondrej Pokorny <lazarus at kluug.net>
> wrote:
>
>> why the double-posting?
>
> Because my example answer to your querys:
>
>> First, I don't want to publish the TEnumeratedObjects object to the
>> outside of TTest (e.g. you could call Free on it and do other stuff I
>> don't want to be allowed).
>
> You can return record, and what is more, record of nested private type
> (i.e. user can use your type, but can't declare variable of your type).
>
>> Second, TEnumeratedObjects doesn't even need to exist! What about
>> "virtual" array properties that are not mapped to existing objects?
>
> It because your example very simple. In more complex cases we can have
> other methods/overloaded operators in returned record. And it more
> flexible solution.
>
> TValueArray = Array Of TObj.TValue;
>
> var va : TValueArray;
>
> Obj.Values.Sort;
>
> va := Obj.Values;
Yes. I see. But I want to add an enumerator to an array property.
TValues is not an array property. It is a record... As I said before
there are some cases I don't want any object/interface/record/banana in
between. I know I can do that the other way. It doesn't matter if you do
it with private record or generic interface or a banana.
I want A and people suggest me B and try to convince me that B is better
and more flexible. But I don't want B, I want A :)
Ondrej
More information about the fpc-devel
mailing list