[fpc-pascal] with in classes/records
Michael Van Canneyt
michael at freepascal.org
Thu Sep 6 16:25:13 CEST 2018
On Wed, 5 Sep 2018, Ryan Joseph wrote:
>
>
>> On Sep 4, 2018, at 7:15 PM, Sven Barth via fpc-pascal <fpc-pascal at lists.freepascal.org> wrote:
>>
>> The idea of the default property is that *all* operators (and methods) (except management operators) are hoisted from the type of the default property. The assignment of one record with default property to another of the same type is handled by the Copy management operator.
>>
>
> I just realized that default shouldn’t be allowed on non-object fields
> right? I think that’s what was decided and makes most sense to me too.
> Disregard my last email. Sorry if I make a bunch of noise while I’m
> working on this but I’m probably going to have lots of questions coming
> up.
No, the whole point of default is that they should be for any kind of field.
For example if you want a nullable boolean, you'll do something like
Type
TNullable<T>= Record
Private
F : T;
isAssigned : Boolean;
Function GetValue : T;
Procedure SetValue(aValue : T);
Property Value : T Read GetValue Write SetValue; default;
Property IsNull : Boolean Read GetISNull Write SetIsNull;
end;
Var
B : TNullable<Boolean>;
begin
Writeln(B.IsNull); // Should be true
B:=True; // Works due to default.
Writeln(B.IsNull); // Should be false.
end.
Michael.
>
> Regards,
> Ryan Joseph
>
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
More information about the fpc-pascal
mailing list