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()
// Properties must be declared before class constructor or functions.
Class constructor
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(GetJson()).myAttribute
// The interpreter and the compiler don't know the type of JSON Parse(GetJson()).myAttribute.
// The myAttribute property is declared as a variant