Dosud existoval pouze jeden způsob, jak vytvořit vlastnost třídy:
property <propertyName> : <type>
Počínaje verzí 4D 20 R5 jsme deklaraci vlastnosti vylepšili. Stejně jako u proměnných můžete nyní deklarovat a inicializovat vlastnost na jednom řádku, jak je popsáno níže:
odvozený typ
property <propertyName> := <value>
Zde je typ vynechán a bude určen překladačem nebo interpretem na základě zadané hodnoty. Aby se předešlo chybám při kompilaci, doporučuje se tento přístup používat výhradně u skalárních typů pocházejících z hodnot, příkazů nebo metod.
Příklad:
//BLOB
Property myBlob:=GetBlob()
//Boolean
Property myBool:=True
//Null
Property myNull:=Null
//Real
Property myNum:=(569/2)
//Object
Property myObj:={att1: 1}
//Text
Property myText:="Hello"
//Collection
Property myCol:=[1; 2; 3]
//Date
Property myDate:=Current date
//Time
Property myTime:=Current time
//Picture
Property myPicture:=GetPicture()
Deklarovaný typ a inicializace
property <propertyName> : <type> := <value>
Stejnějako v případě deklarace proměnné je vlastnost vytvořena s daným typem a poté inicializována hodnotou.
Tento typ deklarace je nutné použít, pokud inicializujete vlastnost s typem jako atribut třídy, meziprocesní proměnná nebo globální. Pokud v těchto případech typ neuvedete, interpret a překladač vyhodnotí nebudou schopni určit typ a místo toho použijí variantní typ. Příklad: V případě, že se jedná o typ typu, který se používá v systému, je třeba, abyste si mohli vybrat, zda chcete, aby byl typ typu typován:
property myAttribute:=JSON Parse($myJson).myAttribute
// The interpreter and the compiler don't know the type of JSON Parse($myJson).myAttribute.
// $myAttribute is a declared as variant